はじめに
https://news.ycombinator.com/item?id=11532281
を見ていて確かにgithub上のmerge済のブランチのdeleteって忘れるよなぁーと思いつつ、作業用のlocalマシン(mac)のがほぼ放置となってブランチが多数あることに気づいた
なので作業用マシンにあるマージ済のブランチを削除するTipsにする
前提
環境
- Mac OS X El Capitan
- git version 1.8.4
- 本流のブランチを
master
とする
コマンド
いきなりはちょっと怖いのでdry run的に試す
git branch --merged | grep -v master | grep -v '*' | xargs -I % echo %
-
--merged
オプションを使う。masterにマージ済のブランチを取得 -
grep -v
でカレントブランチとmasterブランチを除外 - 結果を
echo
本番
git branch --merged | grep -v master | grep -v '*' | xargs -I % git branch -d %
- ドライランの
echo
の部分をgit branch -d
に置き換えて実行するとマージ済の不要なブランチが削除される
ちょっと使いやすく
- 上記のコマンドは覚えるのはつらいのでalias設定をする
.git/config
[alias]
delete-merged-branch = !git branch --merged | grep -v master | grep -v '*' | xargs -I % git branch -d %
これでgit delete-merged-branch
で実行できる