【Git】VS Codeでサブフォルダを開くとGitブランチが表示されなくなる理由と、その確認方法
はじめに
frontend-portfolio/
├── 01_travel_spot/
│ ├── css/
│ │ └── style.css
│ ├── js/
│ │ ├── main.js
│ │ ├── constants.js
│ │ ├── Country.js
│ │ └── Spot.js
│ ├── images/
│ │ └── (ここに画像ファイルが入ります)
│ ├── index.html
│ └── README.md
この構造のポートフォリオを作り始め、VS Code で 01_travel_spot/ フォルダを開きました。
すると、左下に表示されていた ブランチ名 (main など) が消えていました。
frontend-portfolio/
01_travel_spot/
「あれ、Gitの管理下でなくなった?」と疑問に思ったので、調べて分かったことをまとめます。
結論
frontend-portfolio リポジトリの中に 01_travel_spot ディレクトリを作成した場合、
01_travel_spot は自動的に frontend-portfolio リポジトリの Git 管理下に含まれます。
ディレクトリ単位で個別に Git 管理を設定する必要はありません。
なぜブランチが表示されないのか?
VS Code では、開いているフォルダを Git リポジトリとして認識できないと、ステータスバーにブランチ名を表示しません。
01_travel_spot は親の frontend-portfolio リポジトリに含まれていますが、01_travel_spot フォルダ自体には .git フォルダがないため、デフォルト設定では Git リポジトリとして扱われません。
frontend-portfolio/
01_travel_spot/
フォルダのGit管理状態の確認方法
01_travel_spotディレクトリが本当にGitの管理下にあるかを確認したい場合は、以下の手順を試して確認できます。
frontend-portfolio で git status
を実行
→ ブランチ名や変更ファイルが表示される
01_travel_spot に移動して git status
を実行
→ 同じブランチ情報が表示される(Git は親の .git を自動で見つけるため)
ブランチ名 (On branch main) が表示され、現在の状態が表示されているため、そのディレクトリはGit管理下にあると判断できます。
つまり、ターミナル上では問題なく Git 管理下にありますが、VS Code の UI では認識しないことがあるということです。
Git の仕組み:.git フォルダについて
Git の管理情報は .git フォルダにあります。
このフォルダは通常、リポジトリのルート (今回のケースでは、frontend-portfolio) にしか存在しません。
サブディレクトリ (01_travel_spot) には .git はないため、VS Code は単独で開いた場合に Git と認識しないという仕様です。
VS CodeのUIが「今見ているフォルダはGitリポジトリのルートではない」と判断した結果、ブランチ情報の表示を省略しているということです。
まとめ
この記事では、ブランチ名がVS Codeに表示されない点を解説しました。
あくまでもデータ云々の話ではなく、UIの問題であるということを理解できたと思います。
少しでも参考になれば幸いです。
最後までお読みいただき、ありがとうございました。
参考URL
Discussion