リモート開発をやっていると、不要ブランチが出て来ます。
こまめに消していれば良いのでしょうが、修羅場ではそうも言っていられません。
と、いうわけで、今回の記事では不要ブランチを綺麗にするbashスクリプトを紹介します。
$ for var in `git branch | grep -v "develop\|master"`; do git branch -d ${var}; done; git checkout master Deleted branch f/click2next (was 6b1d034). error: The branch 'f/c' is not fully merged. If you are sure you want to delete it, run 'git branch -D f/c'. Deleted branch f/a (was xxxxxxx). Deleted branch f/b (was xxxxxxx). Already on 'develop'
全てが終わった場合、明示的にmasterブランチに戻るようにしています。
ここはお好みでどうぞ
細かいところ
grep
否定論理"-v"
"-v"は否定論理です。
一致したものを除外します。
今回はmasterとdevelopを排除しています。
既存ブランチに含まれているとアレですが
...そこは契約による命名で何とかなります。
ORとAND
今回のようにOR条件を指定する場合は条件文中で"\|"、
ANDはパイプ並列にて対処可能です。
git
"-d"は未マージのものを無視してくれる削除オプション
"-d"なら、マージしていないものは除外してくれます。
(2014/07/04)追記
gitの標準コマンドfor-each-refを活用したバージョンも書きました。
こっちだと指定日付以降を消す事が出来たり...とやや使い勝手が良くなっています。
指定日以前の不要ブランチをまとめて消す - Bye Bye Moore