Visual Studioは、そのブランチが削除された後(そして、選択されたブランチとしてそれを持っていない場合でも)、プルしたブランチを引き続き表示します。
git fetch --all --Prune
"はそれらを削除しません。gitconfigremote.Origin.Prune true
"( ここで推奨 )はそれらを削除しません。削除したブランチをシステムから削除するにはどうすればよいですか?
更新:失われたブランチを特定して削除するアプローチが必要です。具体的に選択すると、遅かれ早かれ誰かが誤って使用中のブランチを削除してしまいます。
Prune
は、リモートに存在しないリモート追跡参照を削除することです。
そのため、ブランチがリモート側にまだ存在する場合、ローカルで削除されません。
ブランチが ローカルで(Visual Studioを使用して)削除された場合 、そのリモートトラッキングインスタンスは次のプッシュ時に再作成されます。
ブランチが リモート側でも削除されていることを確認する必要があります :
git Push Origin --delete abranch
サーバーで削除された後でも消えないリモートブランチがありました。 「プルーンリモートブランチ」の設定に関するこのヒントは私にとってはうまくいきました。私はそれを見つけました ここ 。
チームエクスプローラーに移動し、[ホーム]ボタンをクリックします。次に、[設定]> [リポジトリ設定]をクリックし、[フェッチ中にリモートブランチを削除]ドロップダウンをTrueに設定します。編集を保存するには、「更新」ボタンをクリックすることを忘れないでください。
設定を変更した後、削除したブランチの1つでフェッチを実行したところ、削除されたすべてのブランチが消えていました。
リモートから「削除」されたブランチを削除するほとんどすべての基本的な解決策は、リモート参照もないため、まだプッシュされていないローカルブランチも削除する可能性が非常に高いです。
この警告を回避するには、シェルスクリプトを(git fetch --Prune
の後)に記述します。
git branch -vv
(おそらく2.13.xでgit-branchに追加された--format
フラグ)を使用して、ブランチのリストを取得すると、より簡単に解析できる形式になりますが、この機能はまだ使用していません)grep -e '\['
へのパイプでうまくいくはずです)完全にコードセーフなシンプルなソリューションが必要な場合は、次のコマンドを使用して、特定のブランチに(完全に)マージされたブランチを簡単かつ安全に削除できます。
git branch -D `git branch --merged Origin/master | grep "^ " | xargs`
必要に応じて適切なブランチに置き換えます。 grepは、現在チェックアウトされているブランチを削除しようとするのを防ぎます。
注意willリモートが削除されていなくてもローカルブランチ参照を削除しますが、コミットはどちらの方法でも安全であり、それらのブランチが再び必要になった場合は、いつでもチェックアウトできます。