はじめに
Git を使ってチーム開発をしていると手元のブランチが増えすぎて削除が面倒という人いないでしょうか。
そんな時に使えるワンライナーの便利なコマンドを紹介します。
結論
状況に合わせて以下のコマンドをお使いください。
main ブランチ以外を削除したい
git branch | grep -v main | xargs git branch -D
main と develop ブランチ以外を削除したい
grep
では正規表現を利用できるため、以下のように複数文字列を OR で指定することもできます。
git branch | grep -v "main\|develop" | xargs git branch -D
main と feature ブランチ以外を削除したい
GitHub Flow で重宝するコマンドです。
git branch | grep -v "main\|feature" | xargs git branch -D
コマンドの解説
これらは3つの処理をパイプライン |
としています。
git branch
でブランチの一覧を表示します。
❯ git branch
develop
hotfix/blog
* main
つぎに、grep -v
で(正規表現で)指定した文字列以外を抽出します。
❯ git branch | grep -v main
develop
hotfix/blog
そして、これらを引数 xargs
として git branch -D
でブランチを削除するというわけです。
git branch | grep -v main | xargs git branch -D
おわりに
grep -v
は正規表現で書くことができ、厳密には main
や develop
という文字列を含まないブランチを削除するワンライナーのコマンドです。
そのため、develop-blog
といった develop
を含む文字列は削除されません。
この辺りは正規表現を勉強してカスタマイズできると良いですね。