Gitその他

【全OS対応】マージ済みのブランチを一括削除【Mac & Windows & Linux】

Git
この記事は約2分で読めます。

目的

ローカルに溜まった Git のブランチを削除したい。
探した限りでは Windows 向けのコマンドがなかったので、ここで取り扱っておく。

Windows 向けコマンド

Windows のパワーシェルではegrep が使用できないため、Select-String で代用します。
Select-String からパイプで渡されたテキストから正規表現パターンに一致しない行を選択し、それらの行を ForEach-Object を使ってブランチを削除する Git コマンドに渡します。

$ git branch --merged | Select-String -Pattern '^\*|develop|master|main' -NotMatch | ForEach-Object { git branch -d $_.Line.Trim() }

Mac (Linux) 向けコマンド

Mac では egrep コマンドが使えるため、使用します。
マージ済みの main ブランチ以外のものを選択し、削除するコマンドです。

$ git branch --merged|egrep -v '\*|develop|main'|xargs git branch -d

参考

Gitでマージ済みブランチを一括削除 - Qiita
目的Gitのブランチはマージしても消えてくれないので定期的に掃除しないとゴミが残ってうざい。というわけで、さくっと消す方法。ローカルでマージ済みブランチの一覧を表示git branch --…