Вы находились в отключенном состоянии HEAD, то есть у вас было состояние, подобное этому, когда HEAD не указывал ни на одну ссылку:
A <--master
|
B <--HEAD
|
C
Затем вы добавили несколько файлов и зафиксировали их, что-то вроде это:
touch new_file.txt
git add new_file.txt
git commit -m "your detached HEAD commit"
В этот момент ваше дерево выглядело так:
master --> A
| D <--HEAD
| |
B /
|
C
Поскольку D не указывал на ветку или другую ссылку (вы были "отсоединены") , когда вы снова проверили мастер, git не мог ссылаться на D, поэтому он был «потерян»:
A <--master (HEAD)
|
B
|
C
Чтобы найти D, используйте git reflog
и найдите что-то вроде этого:
0abce (HEAD -> master) HEAD@{0}: checkout: moving from b214e to master
b214e HEAD@{1}: commit: your detached HEAD commit
be14e
- это имя коммита, который вы ищете, поэтому git checkout be14e
, чтобы получить его снова (вы также можете git checkout
файлы напрямую в master, но это другой урок) :
master --> A
| D <--HEAD
| |
B /
|
C
Теперь вы можете просматривать потерянные файлы. Вам, вероятно, следует создать ветку на этом этапе, чтобы ваши файлы больше не терялись при переключении веток. Так что git checkout -b new_branch
, чтобы получить это:
master --> A
| D <--new_branch (HEAD)
| |
B /
|
C