Git でローカルブランチの削除

Ashok Chapagai 2022年12月19日
Git でローカルブランチの削除

プロジェクトに、ローカルマシンで作成されたが、リモートリポジトリには存在しないブランチが多数あるとします。リモートリポジトリと同期していないすべてのローカルブランチを簡単に削除できますが、その前に、ローカルマシンで使用可能なすべてのブランチを確認して、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
Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub

関連記事 - Git Prune