複数のブランチで並行開発をしていると,気付いたらブランチが増えてしまってることがよくある.
ブランチを切り替えようとしたときに「どのブランチだっけ?」って考えてしまったり.
定期的にブランチを削除するようにしてるけど,開発に忙殺されているフェーズほどブランチが増えるし,すぐに切り替えたいのってそういうときだし「あーもう!」ってなる.
ちなみに現在100ブランチ超えててワロタw
➜ xxx git:(xxx) git branch | wc -l 112
最新コミット順に並べたら幸せになれた
git branch
の結果を最新コミット順に並べられれば,開発してた日付感覚的に探せて便利.
git for-each-ref
コマンドを使って実現できた.
➜ xxx git:(xxx) git for-each-ref refs/heads/ --sort='committerdate' --format='%(committerdate:short) %(refname:short)' (略) 2015-06-18 branch_name 2015-06-19 branch_name 2015-06-19 branch_name 2015-06-19 branch_name 2015-06-19 branch_name 2015-06-22 branch_name 2015-06-22 branch_name 2015-06-22 branch_name 2015-06-22 branch_name
フォーマット
ソート順とフォーマットは自由に定義できる.
%(committerdate:short)
を %(committerdate)
にすると
日付情報がフルに出る.時間までわかるけど,個人的に情報量が多くて見にくかった.:short
で十分かと.
➜ xxx git:(xxx) git for-each-ref refs/heads/ --sort='committerdate' --format='%(committerdate) %(refname:short)' (略) Thu Jun 18 17:52:01 2015 +0900 branch_name Fri Jun 19 10:55:32 2015 +0900 branch_name Fri Jun 19 18:54:37 2015 +0900 branch_name Fri Jun 19 19:04:47 2015 +0900 branch_name Fri Jun 19 19:14:30 2015 +0900 branch_name Mon Jun 22 11:45:16 2015 +0900 branch_name Mon Jun 22 15:42:46 2015 +0900 branch_name Mon Jun 22 20:01:43 2015 +0900 branch_name Mon Jun 22 20:32:09 2015 +0900 branch_name
%(refname:short)
を %(refname)
にすると
既に git for-each-ref refs/heads/
で指定してるし,冗長なので :short
にした.
➜ xxx git:(xxx) git for-each-ref refs/heads/ --sort='committerdate' --format='%(committerdate:short) %(refname)' (略) 2015-06-18 refs/heads/branch_name 2015-06-19 refs/heads/branch_name 2015-06-19 refs/heads/branch_name 2015-06-19 refs/heads/branch_name 2015-06-19 refs/heads/branch_name 2015-06-22 refs/heads/branch_name 2015-06-22 refs/heads/branch_name 2015-06-22 refs/heads/branch_name 2015-06-22 refs/heads/branch_name
Alias などお好きなように
➜ ~ more .zshrc | tail -n 1 alias gbs="git for-each-ref refs/heads/ --sort='committerdate' --format='%(committerdate:short) %(refname:short)'"
今後の展望
peco で使えるようにする.