Git でマージされたブランチを削除する

Reema Faysal 2023年1月30日
  1. Git の既存のブランチを表示する
  2. Git で一度に複数のローカルマージされたブランチを削除する
  3. Git でローカルおよびリモートのマージされたブランチを削除する
Git でマージされたブランチを削除する

Git では、多くのチームメンバーと連携するために分岐が必要です。ブランチは、Git で過去に行われた変更のスナップショットを表します。

Git で新しいブランチを作成するときは、バグを修正したり、新しい機能を追加したりするために行った変更を含めることを目的としています。

Git を使用すると、ブランチを作成するか、コマンドを使用して削除するかにかかわらず、ブランチを簡単に管理できます。ブランチの削除は Git の例外ではありません。

多くの開発者は、マージされたブランチを削除することで Git リポジトリがクリーンになり、既存のブランチへの新しい開発に簡単に移行できることに満足しています。

Git で次のコマンドを使用して、すでにマージされているブランチを削除する方法を見てみましょう。

Git の既存のブランチを表示する

リポジトリ内の既存のブランチの削除を開始する前に、次のコマンドを実行して、ブランチのすべてのリストを確認しましょう。

git branch

すべてのリモートブランチのリストを表示するには、次のコマンドを実行します。

git branch -r

すべてのブランチ(ローカルおよびリモート)のリストを表示するには、次のコマンドを実行します。

git branch -a

これらのコマンドの結果として、ブランチのリストが表示されます。表示されているすべてのブランチを削除する必要はありません。私たちの目標は、すでにマージされているブランチをクリーンアップすることです。

すべてのローカルにマージされたブランチのリストを表示するには、次のコマンドを実行します。

git branch --merged

マージされていないすべてのローカルブランチのリストを表示するには、次のコマンドを実行します。

git branch --no-merged

Git で一度に複数のローカルマージされたブランチを削除する

一度に 1つずつブランチを削除することは、はるかに時間がかかり、適切な作業ではありません。もちろん、私たちは開発者であり、いくつかのコマンドを使用してロボット化できる場合、反復的なタスクを実行することは好みません。

マージされたブランチのリストで見たように、将来削除したくないブランチがいくつかある可能性があります。したがって、この目的のために、マージされたすべてのブランチを削除して、削除したくないブランチを除外するコマンドを使用して、いくつかの引数を追加します。

次のコマンドには、master ブランチ、および dev が含まれているものは含まれません。

git branch --merged| egrep -v "(^\*|master|main|dev)"

他のブランチをスキップする場合は、次のように名前を追加します。

git branch --merged| egrep -v "(^\*|master|main|dev|skip_branch_name)"

ここで、過去にリポジトリの現在チェックアウトされているブランチにすでにマージされているリポジトリの既存のローカルブランチを削除するとします。その場合、次のコマンドを実行します。

git branch --merged | grep -i -v -E "master|dev"| xargs git branch -d

Git でローカルおよびリモートのマージされたブランチを削除する

マージされたローカルブランチを削除するには、以下に説明するように、オプション -d を指定して git branch コマンドを実行します。

git branch -d <branch-name>

ローカルブランチがマージされていない場合は、次のコマンドを実行します。

git branch -D <branch-name>

リモートから削除する場合は、オプション --delete を指定して git push コマンドを実行します(ここでは、リモートの名前はオリジンであり、デフォルトです):

git push --delete origin <branch-name>

または、次のコマンドを使用することもできます。

git push origin :<branch-name>

リモートからブランチを削除した後、次のコマンドを使用して、リモートトラッキングブランチを削除するためにプルーニングします。

git remote prune origin

個別に、次のコマンドを使用してリモート追跡ブランチを整理することもできます。

git branch -dr <branch-name>

関連記事 - Git Merge