- detached HEAD 状态是指 HEAD 指针不指在任何分支的索引(比如 master、dev)。
- 进入 detached HEAD 状态后 git 会创建一个临时分支。
- 如果想退回直接 git checkout 想要的分支,最优雅没有之一。
- 否则操作后,要 git add、git commit 然后 git checkout -b 新的分支,不然临时分支会被 git 删除。
例子:
-
$ git branch -l <----- 当前是 master 分支 * master $ git log --oneline c222c53 add b 49e519e add a $ git checkout 49e519e <----- 分离 HEAD 和分支索引,处于 detached HEAD 状态 Note: checking out '49e519e'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name <--- git 提示要新建分支来记住 commit HEAD is now at 49e519e... add a ((detached from 49e519e)) $ git branch -l * (detached from 49e519e) <--- git 创建的临时分支 master ((detached from 49e519e)) $ git checkout - <--- 简单的 checkout 回原来分支,这里是master Previous HEAD position was 49e519e... add a Switched to branch 'master' $ git branch -l * master <--- 临时分支不见了
git detached HEAD解决方案
最新推荐文章于 2023-10-13 10:39:45 发布