首页 > 解决方案 > 为什么当我 git status 时看到“HEAD detached from”?

问题描述

我试图切换到另一个提交,所以我做了:( git checkout 031c057按顺序进行第四次提交)

在我切换回 a06bbacthen 之后,我做了一些修改,然后我做了一个“提交”

现在当git status我看到:

$ git status
HEAD detached from a06bbac
nothing to commit, working tree clean

这是我的 git 日志:

f24cb85 (HEAD) seconde template
a06bbac (mostafa-test) sc just for test
19c2ad5 (origin/mostafa-test) first sample template
031c057 sc
f6c72a0 make component for table and header
89a0dd3 material-table ready
748ce3b first grid & first table
605562f (master) git ignore fix
1ec70f4 sc
eadfa97 (origin/master, origin/HEAD) Initial commit

如何让它正常?

标签: gitgitlab

解决方案


HEAD是一个特殊的符号引用。它是指分支头,而不是直接提交。当它指的是不是分支头的东西时,我们说它HEAD处于分离状态。

运行后git checkout a06bbac,您的 Git 状态类似于

HEAD ----------------> a06bbac ---> 19c2ad5 ---> ...
                         ^
                         |
mostafa-test ------------+

而不是

HEAD ----> mostafa-test --> a06bbac ---> 19c2ad5 ---> ...

结果,运行git commit没有mostafa-test按应有的方式更新。

要解决这个问题,您可以简单地 checkout mostafa-test,然后使用git reset来修复它。

$ git checkout mostafa-test
$ git reset f24cb85

推荐阅读