19
20

More than 5 years have passed since last update.

(github上で)mergeされたブランチを一括削除する

Last updated at Posted at 2014-05-22

下記のようにエイリアス登録し、時々実行すると便利です!

git-prune-branches () {
    git fetch --prune origin && git branch --merged origin/master | grep -vE ' master$|^\*' | xargs git branch -d
}

削除されるのは、ローカルのほかのbranch(例:master)にmerge済みかつサーバのorigin/masterでmergeされているもの限定なので安全です・・!1つでも差分が積まれていたり、サーバ側にはpushされていないと、削除対象になりません!

なお、必ずmasterやdevelopなどのブランチを予めgit pullしておく必要があります(しないと削除されない)。-d-Dに書き換えるとgit fetchのみで対応できるようになりますが、強制削除のオプションなので心配な方はそのまま使いましょう。

ちなみにdry-runも用意しておきました。

git-prune-branches-dry-run() {
    git fetch --dry-run --prune origin
    git fetch origin && git branch --merged origin/master | grep -vE ' master$|^\*' | xargs echo git branch -d
}

参考にしたサイト:http://devblog.springest.com/a-script-to-remove-old-git-branches/

19
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
20