#git
Вопрос:
У меня есть следующая структура главной ветви:
WrongCommit1-->WrongCommit2-->WrongCommit3 master
/
/
GoodCommit--- master
Я хотел бы «перезапустить» главную ветвь с GoodCommit
, внести некоторые изменения и забыть заголовок, заканчивающийся на WrongCommit3
.
Как это можно сделать в git?
Ответ №1:
Я полагаю GoodCommit
, для вас это SHA-1
git checkout master
git reset --hard <GoodCommit>
git push --force origin master
При желании вы можете удалить неправильные фиксации из истории
git gc
подробнее: как сбросить git в head
Комментарии:
1. почему? пожалуйста, следуйте инструкциям git-reset , где этот флаг объясняется более подробно
Ответ №2:
Не уверен, что это «правильный» способ сделать это, но он работает для меня:
- Вернитесь к
GoodCommit
использованиюgit revert <id>
или с помощью какого-либо приложения с графическим интерфейсом, такого как рабочий стол GitHub. - Принудительно нажмите на мастера с
git push --force origin master
помощью или снова с помощью этого приложения.
Это возвращает вашу машину в состояние GoodCommit, затем принудительно отменяет любые ошибки и помещает ее в верхнюю часть master.
Комментарии:
1. @Святой Антарио извиняется, должно быть
--force
, нет--hard
. Я лично использую графические приложения для рабочего стола, и они иногда называют это жестким нажимом!