Страницы

Поиск по вопросам

воскресенье, 15 декабря 2019 г.

Git запушить коммит из новой ветки в старую

#git #github


Была одна ветка, master. Последний коммит в этой ветке на гитхабе был не очень, поэтому
я создал новую ветку (second) на основе предыдущего коммита Master. Теперь мне нужно
сохранить изменения, которые я сделал во второй ветке (second), и слить в ветку master,
перезаписав все файлы на ней. Как это сделать?
    


Ответы

Ответ 1



Если репозиторий на GitHub только ваш и больше никто им не пользуется И если вы точно хотите отбросить изменения из последнего коммита, который «не очень». Можно «переставить» ветку master на тот же коммит, на который смотрит second. git checkout master git reset --hard second А потом отправить изменения на GitHub. git push -f origin master Последний коммит, который «не очень», останется в репозитории на некоторое время и будет доступен через git reflog, после чего будет удалён насовсем. Если репозиторий не только ваш Тогда переписывать ветку master нельзя. Будем откатывать нежелательный коммит с помощью git revert. git checkout master git revert HEAD В ветке master появится новый коммит, отменяющий изменения, которые внесены в нежелательном. В результате состояние файлов будет как в коммите, где ветки разошлись. Теперь можно перенести результат из ветки second. git merge second Почему нельзя просто замержить? Потому что изменения из нежелательного коммита никуда не денутся. Их нужно явным образом откатить.

Комментариев нет:

Отправить комментарий