マージ済みのローカルbranchを一括削除
だんだん溜まってくるローカルブランチが邪魔になってくることってありますよね
毎回やるたびに調べて『ほうほう…』ってなるのに、また忘れて・・・を繰り返しがちなのでまとめました
私もコマンドがまだまだ苦手なので(エンジニア10年目)、簡単に解説なんかもしながら…
こんなコマンドになりました
git branch --merged | grep -v 'master' | grep -v 'develop' | xargs git branch -d
やっているのは、たった三つだけ
- マージ済みのbranch一覧を出す
- 削除したくないbranchをリストから除外
- リストのbranchを消す
一見難しそうに見えますが、分解したら超簡単です
–margedでマージ済みのbranchを調べる
–mergedオプションは意味の通り、過去にマージしたbranch一覧を出してくれます。
git branch --merged
ここにはmasterブランチや、git-flow使っている場合developなんかも一覧にでてきます
grepで合致しない一覧を出す
例えばmasterとdevelopをマージ済みbranchとして表示したくない場合は、こんな感じで指定できます。
git branch --merged | grep -v 'master' | grep -v 'develop'
hotfixも除外してみたり(しなくてもよいんだけど)
git branch --merged | grep -v 'master' | grep -v 'develop' | grep -v 'hotfix*'
参考
リストアップされたブランチを削除する
xargsって最初分からずに使っていたんですが(危険!)、簡単に言うとリストを渡すコマンドです
あまりイメージがつかなかったんですが、ここの記事をみてすっと納得できました
https://hydrocul.github.io/wiki/commands/xargs.html
xargsでリストを渡して、branchの-dオプションで削除!
きっとこれで、すっきりするはずです
git branch --merged | grep -v 'master' | grep -v 'develop' | xargs git branch -d
参考
http://www.backlog.jp/git-guide/reference/branch.html
思ったこと
コマンドを覚えたり、一括操作をし始めるとプレフィックス(頭とかおしりに付ける決まった文字)が大切だなって実感します
そして反省します・・・orz
参考にしたページ
こちらのページを参考にさせていただきました
GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)
- 作者: 大塚弘記
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (22件) を見る