Edited at

gitでリモートのマージ済みブランチの最終コミッタを表示させる

More than 1 year has passed since last update.


背景

チームでマージ済みのブランチは削除するというルールがあるんですが、どうも守られていないようで、リモートブランチの数が増えていきました。

BitbucketのGUIではブランチの最終コミッタが表示されないので、ひと目で削除されていないマージ済みのブランチの最終コミッタを見分けたいと思い、gitコマンドでどうにかならないか、調査しました。


スクリプト

for branch in `git branch -a --merged | grep -v master | grep -v develop | grep remotes/origin`

do
echo -e `git show --format="%ai %ar by %an" $branch | head -n 1` \\t$branch;
done | sort -r

ワンライナーで書くとこうなります。

$ for branch in `git branch -a --merged | grep -v master | grep -v develop | grep remotes/origin`; do echo -e `git show --format="%ai %ar by %an" $branch | head -n 1` \\t$branch; done | sort -r


注意

事前にgit fetch --pruneでリモートの削除済みブランチの追跡を切っておかないと、削除済みのブランチまで表示されるので、注意してください。