私たちのワークフローでは、本番環境に対応した開発ブランチがリモート追跡リポジトリにプッシュされ、そこでマスターにマージされます。テストに合格すると、ブランチは削除されます。
私はこれらの開発ブランチのローカル バージョンを削除するのが苦手だったので、対応するブランチをオリジンに持たない多くのローカル ブランチができました。
リポジトリ内のどのブランチがリモート リポジトリから既に削除されているかを簡単に見つける方法はありますか?
私たちのワークフローでは、本番環境に対応した開発ブランチがリモート追跡リポジトリにプッシュされ、そこでマスターにマージされます。テストに合格すると、ブランチは削除されます。
私はこれらの開発ブランチのローカル バージョンを削除するのが苦手だったので、対応するブランチをオリジンに持たない多くのローカル ブランチができました。
リポジトリ内のどのブランチがリモート リポジトリから既に削除されているかを簡単に見つける方法はありますか?
refs/heads
元の投稿者が、 の下のリモート トラッキング ブランチではなく、 の下のローカル ブランチを削除することを意味すると仮定すると、 にrefs/remotes/origin
既にマージされているブランチを見つけるにorigin/master
は、次のようにします。
# Fetch latest copy of origin/master
$ git fetch origin
# Find merged branches
$ git branch --merged origin/master
出力には、 ntoorigin/master
にマージされたブランチが表示されるため、 で安全に削除できますgit branch -d <branch>
。の公式 Linux カーネル Git ドキュメントからgit branch
:
「--merged」は、安全に削除できるすべてのブランチを見つけるために使用されます。これらのブランチは HEAD に完全に含まれているからです。
一方、元の投稿者がリモート トラッキング ブランチを削除することを意味していた場合は、単に-p
または--prune
フラグを に渡しgit fetch
ます。
$ git fetch -p origin
の公式 Linux カーネル Git ドキュメントからgit fetch
:
取得後、リモートに存在しなくなったリモート追跡ブランチを削除します。
git fetch -p
マニュアルから:
-p, --prune 取得後、リモートに存在しなくなったリモート追跡ブランチを削除します。