我在Git中“HEAD detached at”受到了洗礼
首先
作为一个Git初学者,当我的HEAD游离于分支时,我将记录解决此问题的过程。顺便一提,我还不理解为什么问题得以解决,请有人告诉我,谢谢! orz
发生了什么事?
我:“让我们试着回到前面的提交状态。”
我:“首先,确认要返回的提交……好的,是a0ae096!”
[root@centos project]# git log --oneline
577021b apply v70ms_Linux64
a0ae096 customized httpd/data/j60/submenu.js
b3d982f apply hotfix_160609
c132e85 apply hotfix_160531
c900cd8 apply hotfix_160530
88a660e apply hotfix_160509
f8c1c31 exclude crond dir
78c4d24 modified gitignore & apply hotfix_160314
c632311 initial commit
我:“请给我结帐,a0ae096!”
[root@centos project]# git checkout a0ae096
我: “分支的状态是…(HEAD 悬空中?嗯,应该没问题)”
[root@centos project]# git branch
* [HEAD detached at a0ae096]
master
develop
我:“好的,既然确认了要确认的部分,我想把它们再放回master分支。”
[root@centos project]# git checkout master
我:“分支的状态是……!!!? 分支没有移动???”
[root@centos project]# git branch
* [HEAD detached at a0ae096]
master
develop
因此,我們無法將分支恢復到原來的狀態了。
你做了什么?
我用以下的步骤成功解决了问题。
-
- 创建新分支
-
- 切换到新创建的分支
编辑.git/HEAD文件
切换到主分支
创建新分支
因为在关于git的”HEAD从分支中移出”现象及其修复方法的文章中,看到了先创建一个新的分支的指示,所以我又创建了一个新的分支。
不过,虽然写着要移动到master分支后创建,但是那个(\(^o^)/)操作我无法完成。
[root@centos project]# git branch test
[root@centos project]# git branch
* [HEAD detached at a0ae096]
master
develop
test
切换到新创建的分支
当我切换到新创建的分支时,成功了,而且奇怪的是[HEAD detached at a0ae096]也消失了。
然而,仍然无法切换到主分支…\(^o^)/
[root@centos project]# git checkout test
[root@centos project]# git branch
master
develop
* test
[root@centos project]# git checkout master
[root@centos project]# git branch
master
develop
* test
编辑.git/HEAD文件
我想尝试编辑.git/HEAD,操作如下所示。
[root@centos project]# cat .git/HEAD
ref: refs/heads/test
[root@centos project]# cat .git/HEAD
ref: refs/heads/master
切换到主分支
然后尝试在这种状态下切换到主分支(master branch)…
[root@centos project]# git checkout master
[root@centos project]# git branch
* master
develop
test
过来过来过来过来~~~!!!!
最后
我感到非常焦虑,但幸好总算修好了。不过,我不知道为什么它修好了,希望有了解Git的人可以告诉我,请务必帮帮我,真的非常感谢。