LoginSignup
18
17

More than 5 years have passed since last update.

Gitで「HEAD detached at」の洗礼を受けました

Posted at

はじめに

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

ぼく「a0ae096checkoutしてと・・・!」

[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

というわけでブランチを元に戻すことができなくなってしまいました

なにをしたか

以下のステップで解決することができました

  1. 新しいブランチの作成
  2. 新しく作成したブランチへのcheckout
  3. .git/HEADの編集
  4. 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
masterへのcheckoutはなぜかできない
[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に詳しい人教えて下さい本当にお願います。

18
17
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
17