1

私たちのワークフローでは、本番環境に対応した開発ブランチがリモート追跡リポジトリにプッシュされ、そこでマスターにマージされます。テストに合格すると、ブランチは削除されます。

私はこれらの開発ブランチのローカル バージョンを削除するのが苦手だったので、対応するブランチをオリジンに持たない多くのローカル ブランチができました。

リポジトリ内のどのブランチがリモート リポジトリから既に削除されているかを簡単に見つける方法はありますか?

4

2 に答える 2

7

refs/heads の下のローカル ブランチの検索と削除

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 に完全に含まれているからです。

refs/remotes/origin の下のリモート追跡ブランチを削除する

一方、元の投稿者がリモート トラッキング ブランチを削除することを意味していた場合は、単に-pまたは--pruneフラグを に渡しgit fetchます。

$ git fetch -p origin

公式 Linux カーネル Git ドキュメントからgit fetch:

取得後、リモートに存在しなくなったリモート追跡ブランチを削除します。

于 2013-08-06T14:00:18.813 に答える
2
git fetch -p

マニュアルから:

-p, --prune 取得後、リモートに存在しなくなったリモート追跡ブランチを削除します。

于 2013-08-06T13:14:25.873 に答える