Повторно откройте мастер из предыдущей фиксации

#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:

Не уверен, что это «правильный» способ сделать это, но он работает для меня:

  1. Вернитесь к GoodCommit использованию git revert <id> или с помощью какого-либо приложения с графическим интерфейсом, такого как рабочий стол GitHub.
  2. Принудительно нажмите на мастера с git push --force origin master помощью или снова с помощью этого приложения.

Это возвращает вашу машину в состояние GoodCommit, затем принудительно отменяет любые ошибки и помещает ее в верхнюю часть master.

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

1. @Святой Антарио извиняется, должно быть --force , нет --hard . Я лично использую графические приложения для рабочего стола, и они иногда называют это жестким нажимом!