Git Force возвращается в HEAD ~ 7 - PullRequest
13 голосов
/ 14 июля 2010

Я совершил и подтолкнул некоторые плохие вещи.Как я могу принудительно вернуть мой локальный репо в HEAD ~ 7 и повторно зафиксировать, чтобы HEAD теперь был в этой версии?Git Docs смущают меня.

Спасибо!

Ответы [ 2 ]

26 голосов
/ 14 июля 2010

Самый хороший подход - это подтолкнуть другой коммит, который отменяет непреднамеренные коммиты.См. ответ Якуба Наренбского о том, как это сделать.

Если по какой-то причине стоит недружелюбное использование обновления, которое не является перемоткой вперед (чувствительные биты в коммитахнапример), введите следующие команды:

git reset --hard HEAD~7
git push --force origin master

Первая перемотает вашу текущую ветку.Это острый инструмент, поэтому будьте осторожны.

Чтобы остановить случайную потерю работы, git не будет толкать вашу перемотанную ветвь.Опция --force отключает эту функцию безопасности.

6 голосов
/ 14 июля 2010

git reset --hard HEAD~7 полностью отменит ваши изменения.

git reset HEAD~7 отбросит коммиты, но оставит изменения в рабочей копии, чтобы вы могли редактировать и повторно фиксировать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...