Visual Studioで削除したはずのGitブランチが消えない!設定1つでリストをスッキリさせる「Prune」活用術
はじめに
チームでのソフトウェア開発において、Gitを使用したバージョン管理はもはや必須のスキルとなっています。日々の開発フローでは、機能追加やバグ修正のために新しい「ブランチ」を作成し、作業が完了すればプルリクエスト(マージリクエスト)を出してマージし、不要になったブランチを削除する、というサイクルを繰り返しているのではないでしょうか。
Visual Studioを使って開発をしている際、こんな「地味だけれど気になる現象」に遭遇したことはないでしょうか?
「GitHubやGitLabなどのリモートリポジトリ上ではブランチを削除したはずなのに、Visual Studioのブランチ一覧にはまだ名前が残っている……」
一見すると些細な問題に見えるかもしれません。しかし、開発期間が長くなり、ブランチの作成と削除を繰り返していくと、Visual Studio上のブランチリストには「既に存在しないはずのブランチ」が大量に蓄積されていきます。
リストが長くなればなるほど、本当に必要なブランチを探すのに時間がかかったり、誤って削除済みのブランチを選択してしまったりと、開発効率や心理的な快適さをじわじわと下げてしまいます。
この記事では、Visual Studioの設定をたった1箇所変更するだけで、この問題を解消し、常に最新のクリーンなブランチ状態を保つ方法をご紹介します。
なぜ削除したブランチが残り続けるのか
解決策の設定を行う前に、そもそも「なぜリモートで削除したのに、手元のVisual Studioには残るのか」という仕組みについて少し整理します。ここを理解しておくと、設定の意味がより深く分かります。
Gitの「追跡ブランチ」の仕組み
Gitには「リモート追跡ブランチ(Remote Tracking Branch)」という概念があります。これは、リモートリポジトリ(originなど)の状態をローカルにコピーして持っている情報のことを指します。通常、origin/feature のような名前で表示されるものです。
git fetch(フェッチ)を行うと、Gitはリモートリポジトリの最新の更新情報(新しいコミットや新しいブランチ)をローカルに持ってきます。しかし、標準的なGitの仕様では、「リモートでブランチが削除された」という情報は、単なるフェッチだけでは自動的に反映されない(削除されない) ことが多いのです。
つまり、以下の状態になります。
- リモートリポジトリ:ブランチ
featureを削除済み。 - ローカルリポジトリ:以前フェッチした時の
origin/featureという情報が残ったまま。 - Visual Studio:ローカルに残っている情報を見て一覧に表示し続ける。
これが、削除したはずのブランチがいつまでもリストに居座り続ける原因です。
「Prune(剪定)」の必要性
この不要になった追跡ブランチを削除する操作を、Git用語で Prune(プルーン/剪定) と呼びます。植物の余分な枝を切り落として形を整えるように、不要なブランチ情報を刈り取る処理です。
Visual Studioでこの現象が起きている場合、この「Prune」処理が自動で行われる設定になっていない可能性が高いです。
解決手順:Visual Studioの設定を変更する
それでは、実際にVisual Studioの設定を変更して、フェッチと同時に自動的に不要なブランチを削除(Prune)するようにします。手順は非常にシンプルです。
1. 設定画面を開く
- メニューバーの [Git] をクリックします。
- 表示されたメニューの中から [設定] を選択します。
これで「オプション」ダイアログが表示され、Git関連の設定画面が開きます。
2. 「フェッチ中にリモートブランチを取り除く」を有効にする
- [ソース管理] を展開し、その下の [Git グローバル設定] を選択します。
- [フェッチ中にリモートブランチを取り除く] プルダウンメニューが、デフォルトでは「Unset」や「False」になっている場合が多いです。これを [True] に変更します。
- 最後にダイアログ右下の [OK] ボタンをクリックして設定を保存します。
3. 効果の確認
Visual Studioで「フェッチ(Fetch)」または「プル(Pull)」などの操作を行い、リモートリポジトリとの通信が発生したタイミングで、リモート側で削除されているブランチ情報がローカルからも自動的に削除されます。
これまで溜まっていた大量の不要ブランチが一気に消え、現在アクティブなブランチだけがリストに残るはずです。
まとめ
本記事では、Visual Studioで「削除したはずのブランチが表示され続ける」問題の原因と、その解決策について解説しました。
- 原因: Gitのフェッチだけでは、削除情報は自動反映されない設定になっているため。
- 対策: Visual Studioの [Git グローバル設定] で 「フェッチ中にリモートブランチを取り除く」をTrueにする。
毎日のようにGitのブランチ操作を行うエンジニアにとって、リストが整理整頓されていることは、気持ちよく仕事をするための重要な要素の一つです。
「そういえば、自分のVisual Studioもブランチリストがごちゃごちゃしていたな」と思い当たる方は、ぜひ今日からこの設定を有効にしてみてください。
NTT DATA公式アカウントです。 技術を愛するNTT DATAの技術者が、気軽に楽しく発信していきます。 当社のサービスなどについてのお問い合わせは、 お問い合わせフォーム nttdata.com/jp/ja/contact-us/ へお願いします。