仕事効率化

gitでマージ済みのリモートブランチ一覧を表示する【消し忘れ防止】

git
記事内に商品プロモーションを含む場合があります

チーム開発をしている時など

「リモートブランチ増えてきたな…マージ済みなのに消されてないブランチがあるんじゃないか?」

なんて事はありませんか?

ローカルブランチなら自分で確認して削除するだけなので、以下のコマンドでOKです。

git branch --merged

リモートブランチはSlack等でチームメンバーに共有して担当者に削除してもらうので、整形も込みで以下のようにして使っています。

git for-each-ref --sort=-committerdate refs/remotes/origin --format='[%(authorname)] %(authordate:short) %(refname:short)' --merged | xargs -I{} printf "%s\n" {}

for-each-refでブランチの情報をいろいろ取得できます。

今回は次のようにブランチの最終コミットをした人と日付を一緒に表示されるようにしてみました。

$ git for-each-ref --sort=-committerdate refs/remotes/origin --format='[%(authorname)] %(authordate:short) %(refname:short)' --merged | xargs -I{} printf "%s\n" {}
[ina-amagami] 2019-08-17 origin/feature/player_action
[ina-amagami] 2019-08-17 origin/clean/list_extension
[ina-amagami] 2019-06-24 origin/develop
[ina-amagami] 2019-03-31 origin/master

--mergedオプションは、今いるローカルブランチに対してマージ済みのもの(リモートブランチ側で先行していないもの)を表示します。

反対にマージされていないものを表示したい場合は--no-mergedを使用します。

masterブランチにマージ済みのブランチ一覧を表示する場合であれば、masterブランチにcheckoutして最新版をpullしてから実行して下さい。

単純にリストを確認したいだけなら以下のコマンドでもOKです。

git branch -r --merged