Git сила возвращается к HEAD ~ 7

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

Спасибо!

Ответ 1

Самый приятный подход - нажать другую фиксацию, которая вернет непреднамеренные коммиты. См. ответ Jakub Narębski о том, как это сделать.

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

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

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

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

Ответ 2

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

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