Как мне отменить проверку в git?

134

Я только что проверил более раннюю фиксацию из моего локального репозитория git. Я не вносил в него никаких изменений, я просто смотрел на него. Теперь я хочу вернуться к своей последней фиксации - как мне это сделать?

Точная команда, которую я использовал, чтобы проверить это:

git checkout e5dff6b3c5d704f9b598de46551355d18235ac08

Теперь, когда я набираю git log, вверху я вижу этот извлеченный коммит, но ни один из моих более поздних коммитов не фиксируется. Я случайно удалил их?

Юваль Карми
источник
Я думаю, вы неправильно это понимаете: мы проверяем по веткам (головам), а не по отдельности
З. Кулла

Ответы:

184

Сначала попробуйте следующее:

git checkout master

(Если вы находитесь в другой ветке master, вместо этого используйте имя ветки.)

Если это не сработает, попробуйте ...

Для одного файла:

git checkout HEAD /path/to/file

Для всей рабочей копии репозитория:

git reset --hard HEAD

И если это не сработает, вы можете посмотреть в журнале ссылок свой старый SHA-код головы и сбросить его:

git reflog
git reset --hard <sha from reflog>

HEAD - это имя, которое всегда указывает на последнюю фиксацию в вашей текущей ветке.

янтарный
источник
но как мне просмотреть свои коммиты, чтобы решить, какой хеш SHA1 дать им?
Yuval Karmi
1
Вы не - вы HEADпечатаете дословно. Git уже знает, что HEADзначит. Однако, если вы действительно действительно хотите вместо этого присвоить ему SHA1, вы можете использовать его git logдля просмотра журнала фиксации.
Эмбер
когда я запускаю, git reset --hard HEADон возвращает меня к той проверенной фиксации ... Я отправлю точную команду, которую использовал, чтобы проверить это.
Yuval Karmi
(Если вам интересно, вы можете ввести git rev-parse HEADи увидеть, что он дает вам SHA1, соответствующий вашей последней фиксации.)
Янтарь,
Выше я добавил два новых варианта, попробуйте их (по порядку - сначала попробуйте оформить заказ).
Эмбер
56

Для отмены git checkoutделать git checkout -, так же , как cdи cd -в скорлупе.

Гейлорд Танкью Джонсон
источник
16

Вы, наверное, хотите git checkout master, или git checkout [branchname].

wuputah
источник