Git でローカルブランチの削除
Ashok Chapagai
2022年12月19日
プロジェクトに、ローカルマシンで作成されたが、リモートリポジトリには存在しないブランチが多数あるとします。リモートリポジトリと同期していないすべてのローカルブランチを簡単に削除できますが、その前に、ローカルマシンで使用可能なすべてのブランチを確認して、git branch
を実行できます。
ここで、すべてのリモートブランチを一覧表示するには、git branch -r
コマンドを使用できます。1つのコマンドで両方の結果を達成するには、git branch -a
コマンドを使用できます。ブランチが確認されたら、記事の残りの部分に進むことができます。
Git の(プルーニング)ローカルブランチを削除する
次のコマンドを簡単に実行して、リモートリポジトリにない追跡ブランチを整理できます。
git remote prune origin
上記のコマンドは、リモートリポジトリにない追跡ブランチを削除しますが、ローカルブランチはまだ削除されていません。ローカルブランチを実際に削除するには、以下で説明する追加の手順を実行する必要がある場合があります。
-
詳細な出力ですべてのブランチを一覧表示します。
git branch -vv
ここで、出力を
origin/.* : gone]
の grep にパイプアウトします。これは、gone
ステータスが、リモートリポジトリでは使用できないが、ローカルマシンでは使用できるブランチに設定されるためです。grep 'origin/.*: gone]'
-
ここでも、以下のように出力を
awk
(フォーマットするのに非常に優れたツールです)にパイプします。awk '{print $1}'
-
最後に、出力を
xargs
にパイプします。これは、あるコマンドから出力を取得して、別のコマンドへの引数として使用する必要がある場合に使用できます。ステップ 2 からの出力をgit branch -d
コマンドに渡して、ローカルブランチを次のように削除しないでください。xargs git branch -d
したがって、リモートリポジトリで使用できないすべてのローカルブランチを整理して削除する最後の 2つのライナーコマンドを以下に示します。
git remote prune origin
上記のコマンドを実行した後、以下のコマンドを実行して、リモートリポジトリで使用できないローカルブランチを削除することをお勧めします。
git branch -vv | grep 'origin/.*: gone]' | awk '{print $1}' | xargs git branch -d
著者: Ashok Chapagai