Як скасувати замовлення в git?


134

Я щойно перевірив більш раннє зобов’язання з місцевого git repo. Я не вносив жодних змін до цього, я просто дивився на це. Тепер я хочу повернутися до свого останнього зобов'язання - як це зробити?

Точну команду, яку я використав для перевірки:

git checkout e5dff6b3c5d704f9b598de46551355d18235ac08

Тепер, коли я набираю git log, вгорі я бачу це перевірене фіксування, але жодне з моїх пізніших зобов’язань. Я випадково їх видалив?


Я думаю, ви бачите це неправильно: ми
перевіряємо

Відповіді:


183

Спробуйте спочатку:

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 надати його?
Юваль Кармі

1
Ви не - набираєте HEAD, дослівно. Гіт уже знає, що HEADозначає. Однак якщо ви насправді дуже хотіли надати їй SHA1, ви можете використати git logдля перегляду журналу фіксації.
Бурштин

коли я запускаю, git reset --hard HEADце повертає мене до тієї перевіреної комісії ... Я опублікую точну команду, яку використовував для перевірки.
Юваль Кармі

(Якщо вам цікаво, ви можете набрати git rev-parse HEADта побачити, що він дає вам SHA1, що відповідає вашому останньому комітету.)
Бурштин

Додано два нові варіанти вище, спробуйте їх (для того - спробуйте спочатку версію каси).
Бурштин


16

Ви, мабуть, хочете git checkout master, або git checkout [branchname].

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.