Вернуться к коммиту с помощью хэша SHA в Git? [Дубликат]

559
задан JP Silvashy 26 January 2018 в 15:54
поделиться

3 ответа

Если вы хотите выполнить фиксацию поверх текущего HEAD с точным состоянием в другой фиксации, отменив все промежуточные фиксации, вы можете использовать reset для создания правильное состояние индекса для совершения фиксации.

# Reset the index and working tree to the desired tree
# Ensure you have no uncommitted changes that you want to keep
git reset --hard 56e05fced

# Move the branch pointer back to the previous HEAD
git reset --soft HEAD@{1}

git commit -m "Revert to 56e05fced"
1101
ответ дан 22 November 2019 в 22:09
поделиться

Он отменяет указанную фиксацию, что есть, добавляет коммит напротив него. Если вы хотите проверить более раннюю версию, сделайте следующее:

git checkout 56e05fced214c44a37759efa2dfc25a65d8ae98d
86
ответ дан 22 November 2019 в 22:09
поделиться

Что делает git-реверт, так это создает коммит, который отменяет изменения, сделанные в данном коммите, создавая коммит, который является обратным (ну, взаимным) по отношению к данному коммиту. Следовательно,

git revert <SHA-1>

должен и работает.

Если вы хотите перемотать обратно на указанный коммит, и вы можете это сделать, так как эта часть истории ещё не была опубликована, вам нужно использовать git-reset, а не git-revert:

git reset --hard <SHA-1>

(Обратите внимание, что --hard заставит вас потерять любые нефиксированные изменения в рабочем каталоге).

Дополнительные примечания

Кстати, возможно, это не очевидно, но везде, где в документации сказано или (или ), вы можете поместить SHA-1 идентификатор (полный или сокращённый) коммита.

.
131
ответ дан 22 November 2019 в 22:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: