はじめに
こちらの記事を書きながら、
勉強していた時、思いました。
VS Codeでもコマンド操作でも、detached HEADになるときは警告を出してくれますが、慣れていない初心者はよくメッセージを読まずにスルーして、おかしくなってパニックになりそう。
そこで思いました。今detached HEAD状態か、VS Codeではどこかに表示されていたりしないんでしょうか。簡単にわかる方法はないんでしょうか。
ターミナルでコマンドを叩く
ターミナルからgit branchを実行すれば(HEAD detached at ほにゃらら)と表示されるのでわかります。これが普通のやり方かな、と思います。
$ git branch
* (HEAD detached at 08afec7)
main
左下のブランチ表示
VS Codeの左下の、ここに現在のブランチが表示されます。
これがdetached HEADのとき。コミットIDになってます。
しかし正直小さくてわかりにくいかも。
コミットメッセージ入力欄
ここ、未入力状態だと、ひそかにどこにコミットしようとしているかが表示されています。
これがdetached HEAD状態のときです。
でもこれも気付きにくいかも。
Git Graphのブランチ名のフォント
拡張機能Git Graphを入れている場合です。(記事執筆時v1.30.0)
detached HEADの場合、Git Graphでブランチ名が太字ではなく、細字で表示されます。
これは、ブランチでなく最新のコミットにチェックアウトしたときの画面。
こちらがブランチにチェックアウトしたとき。「main」の、微妙な違いが、わかりますでしょうか?
GitLensのコミットグラフ(有料)
拡張機能GitLendsにもコミットグラフを表示する機能があります。有料ですけど、3日間だけおためしで見られるのでdetached HEAD状態を見てみたら、めちゃくちゃわかりやすかったです。(記事執筆時v14.9.0)
これが、second commitにチェックアウトした、detached HEADの状態です。
通常はブランチ名しか表示されないのに、detached HEAD状態だと「HEAD」がブランチのところにぽこっと表示されて、明らかになにか違います。
さきほどGit Graphでやってみたのと同じように、最新のコミットにチェックアウトしてみると、こうなります。
おわりに
GitLensのコミットグラフ、わかりやすい!って思いました。さすが有料機能。
参考