TakayukiKoyama Geek Blog

Create, Entertain, Experience

GitのBranchを定期的にキレイにする方法

目的

 開発をしているとローカルにマージ済みのブランチが溜まってくる。 git branch とかしたときに多すぎて目的のブランチが見つかりにくくなったりする。

 そこで定期的にキレイになるcron処理を作ってみた。

前提

 環境:MacOSX

概要

 マージされたブランチを全て削除するシェルを作成して、夜間に cron が実行されるようにした。

 とはいえ、稀に夜中作業するかもしれないので、実行開始を osascript で mac の右上通知から通知させるようにした。

$ cat my_cron_day.sh
osascript -e 'display notification "start" with title "Git Branch Clean"'
cd /Users/< user name >/opt/< branch dir >
current_branch=`git rev-parse --abbrev-ref HEAD`
git stash
git checkout < branch (ex. develop) > && git branch --merged | grep -v '*' | xargs -I % git branch -d %
echo $current_branch
git checkout $current_branch
git stash pop

 < user name > / < branch dir > はお使いのgitディレクトリに適宜置き換えてください。

 < branch (ex. develop) > は普段マージしているブランチ名に置き換えてください。

$ crontab -e
00 03 * * * /Users/<user name>/my_cron_day.sh

参考:

【Git】Tips: マージ済みのブランチを一括で削除する | DevelopersIO

コマンドでMacの画面に通知ダイアログを出す - Qiita