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