はじめに
Git初心者のぼくがHEAD detached at
の洗礼を受けたので解決させるまでの経緯をメモします。
ちなみになんで直ったのかはちゃんと理解できていませんので誰か教えて下さいお願いします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
にcheckout
してと・・・!」
[root@centos project]# git checkout a0ae096
ぼく「ブランチの状態はと・・・(HEAD detached at? まぁ、大丈夫やろ)」
[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
というわけでブランチを元に戻すことができなくなってしまいました
なにをしたか
以下のステップで解決することができました
- 新しいブランチの作成
- 新しく作成したブランチへの
checkout
-
.git/HEAD
の編集 -
master
ブランチへのcheckout
新しいブランチの作成
gitのHEADがブランチから外れてしまう現象とその直し方の記事にとりあえず新しいブランチ作れみたいに書いてあったので新たにブランチを作成
しかし、作成後master
ブランチへ移動みたいなこと書いてあるけどそれができないという\(^o^)/
[root@centos project]# git branch test
[root@centos project]# git branch
* [HEAD detached at a0ae096]
master
develop
test
新しく作成したブランチへのcheckout
新しく作成したブランチへcheckout
してみたらできました
そしてなぜか[HEAD detached at a0ae096]
も消えていました
しかし、masterブランチへcheckout
できないのは相変わらず・・・\(^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
ブランチへのcheckout
そしてその状態でmasterブランチへのcheckout
を試みたところ・・・
[root@centos project]# git checkout master
[root@centos project]# git branch
* master
develop
test
きたきたきたきた~~~!!!!
おわりに
とりあえずかなり焦りましたがなんとか直せてよかったです。
しかし、なんで直ったのかわからないという状況なのでGitに詳しい人教えて下さい本当にお願います。