Поскольку ваш коммит не находится ни в одной ветви , вы не сможете увидеть его в рабочем каталоге, пока не извлечете этот конкретный коммит, используя его SHA1. Вы можете найти коммит, посмотрев на reflog
, который отслеживает изменения в том, что вы выписали из репо. Если ваш тег был XXX
, вы увидите что-то вроде:
$ git reflog
7a30fd7... HEAD@{0}: checkout: moving from master to XXX
ddf751d... HEAD@{1}: checkout: moving from 96c3b0300ccf16b64efc260c21c85ba9030f2e3a to master
96c3b03... HEAD@{2}: commit: example commit on tag XXX, not on any branch
7a30fd7... HEAD@{3}: checkout: moving from master to XXX
Это говорит вам SHA1, что вам нужно будет checkout
, чтобы увидеть ваш коммит в рабочем каталоге.
$ git checkout 96c3b03
Note: moving to "96c3b03" which isn't a local branch
If you want to create a new branch from this checkout, you may do so
(now or later) by using -b with the checkout command again. Example:
git checkout -b <new_branch_name>
HEAD is now at 96c3b03... example commit on tag XXX, not on any branch
$ git checkout -b newbranch
$ git branch #lists all branches
feature1
master
* newbranch
Сначала все это казалось мне немного странным, пока я не понял, что git checkout
помещает все файлы проекта с определенного коммита в мою файловую систему (рабочий каталог). По сути, рабочий каталог действует как браузер в локальном репозитории Git. Таким образом, ваши изменения не были перезаписаны в хранилище , они просто не отображаются в вашем рабочем каталоге, когда вы извлекли мастер.