LoginSignup
0
0

VS Codeでdetached HEAD状態の把握方法

Posted at

はじめに

こちらの記事を書きながら、

勉強していた時、思いました。
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になってます。
image.png

これが通常で、ブランチ名が表示されています。
image.png

しかし正直小さくてわかりにくいかも。

コミットメッセージ入力欄

ここ、未入力状態だと、ひそかにどこにコミットしようとしているかが表示されています。
これがdetached HEAD状態のときです。
image.png

これが通常の状態です。
image.png

でもこれも気付きにくいかも。

Git Graphのブランチ名のフォント

拡張機能Git Graphを入れている場合です。(記事執筆時v1.30.0)
detached HEADの場合、Git Graphでブランチ名が太字ではなく、細字で表示されます。

これは、ブランチでなく最新のコミットにチェックアウトしたときの画面。
image.png

こちらがブランチにチェックアウトしたとき。「main」の、微妙な違いが、わかりますでしょうか?
image.png

GitLensのコミットグラフ(有料)

拡張機能GitLendsにもコミットグラフを表示する機能があります。有料ですけど、3日間だけおためしで見られるのでdetached HEAD状態を見てみたら、めちゃくちゃわかりやすかったです。(記事執筆時v14.9.0)

これが通常。
image.png

これが、second commitにチェックアウトした、detached HEADの状態です。
image.png

通常はブランチ名しか表示されないのに、detached HEAD状態だと「HEAD」がブランチのところにぽこっと表示されて、明らかになにか違います。

さきほどGit Graphでやってみたのと同じように、最新のコミットにチェックアウトしてみると、こうなります。
image.png

「+1」のところにhoverすると、このように。
image.png

おわりに

GitLensのコミットグラフ、わかりやすい!って思いました。さすが有料機能。

参考

0
0
0

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
0
0