見出し画像

Gitのローカルのブランチを日付順に並べたい

ローカルブランチが増えすぎて管理放棄


masterにマージ済みブランチの一覧を表示は

$ git branch --merged

ローカルブランチの名前って結構適当だから、時間が立つと仕掛かり中のブランチってどれだっけ?とか忘れる。

残しておきたいブランチもあれば、消してしまった方がよいブランチもある。マージしたブランチや検討が終わったブランチは基本削除するのがよい。だけど消し忘れるとそのブランチは永遠に存在しつづけ、ブランチが増え続ける。エンジニア7不思議のひとつ(テキトー)

ブランチ数が50を超えてくると、git branch で一覧表示するとブランチ名順にソートされてるので毎回迷子になる。せめてローカルのブランチを日付順に並べられないの?とか思って、ググってみてた。


自分の用途的には下記のgit for-each-refコマンドでよさそう。他にもいろいろ可能性がありそうなコマンド。

ローカルのブランチを日付順に並べるコマンド

$ git for-each-ref --sort=-committerdate --format='%(authordate) %(refname:short)' refs/heads
Sun Dec 27 16:29:56 2020 +0900 release-hoge
Sun Dec 13 15:19:58 2020 +0900 master
Sun Dec 13 15:16:05 2020 +0900 br5
Thu Nov 26 22:00:41 2020 +0900 br4
Sun Nov 15 09:16:39 2020 +0900 br3
Sat Oct 17 17:28:16 2020 +0900 br2
Fri Oct 9 21:30:20 2020 +0900 br1


コマンド解説


for-each-ref
ブランチ名とそのブランチ上にある最新コミットハッシュ値表示

--sort=-committerdate
committerdate(コミット日付)順にソートする。

--format='%(authordate) %(refname:short)'
標準出力に何を表示するかの指定。
Defaultだと日付は非表示なので%(authordate)が必要
%(refname:short)はブランチ名を表示。 short指定でブランチ名がショートバージョンで表示

refs/heads
ローカルブランチのみを指定。これを指定しなければリモートブランチも表示される。


参考ページ
https://qiita.com/usamik26/items/28503c2f594d2ef305d2
https://taiga.hatenadiary.com/entry/2018/05/04/172538
http://tsujitaku50.hatenablog.com/entry/2017/04/20/220934
https://shuzo-kino.hateblo.jp/entry/2014/07/03/232310
https://qiita.com/yocifico/items/6e58480baa2bf696148d

その他
全ブランチから文字列検索する
https://qiita.com/yuba/items/852d019af48ee7ccd92e

いいなと思ったら応援しよう!