我在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

因此,我們無法將分支恢復到原來的狀態了。

你做了什么?

我用以下的步骤成功解决了问题。

    1. 创建新分支

 

    1. 切换到新创建的分支

编辑.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的人可以告诉我,请务必帮帮我,真的非常感谢。

广告
将在 10 秒后关闭
bannerAds