Боязнь моей жизни с GIT: у меня нет филиалов! - PullRequest
6 голосов
/ 01 февраля 2010

Я проверил старый хеш (коммит) и работал над ним, весело проверяя и игнорируя предупреждения о том, что я не работаю в ветке. Затем я переключился на ветку и понял, что у меня нет возможности вернуться к моим осиротевшим чекам (к счастью, у меня все еще было открыто окно терминала, поэтому я проверил его и разветвил).

Как я могу заставить GIT сообщать мне имена коммитов, которые НЕ принадлежат ветви? Или просто все коммиты, если это невозможно ...

Ответы [ 3 ]

7 голосов
/ 01 февраля 2010

git reflog покажет журнал ссылок, созданных в результате вашей недавней активности. Для дальнейшего использования git checkout коммита ставит вас на отдельную голову . Если вы хотите основывать работу на старом коммите, вы должны вместо этого создать ветку от этого коммита.

git checkout -b newbranch oldsha1

или

git branch newbranch oldsha1
git checkout newbranch
2 голосов
/ 01 февраля 2010

См. этот вопрос , в котором есть отличное объяснение того, как найти спрятанные вами тайники. Вы можете увидеть висячие коммиты и т. Д. Таким же образом.

2 голосов
/ 01 февраля 2010

Вы можете выловить их из reflog, в котором хранятся зафиксированные вами коммиты.

git reflog распечатает самые последние коммиты, на которые указывает HEAD, которая является вашей рабочей копией.

Вы также можете получить список всех объектов в вашем дереве, которые недоступны из ваших текущих веток, используя git fsck.

...