kakakakakku blog

Weekly Tech Blog: Keep on Learning!

ブランチを最新コミット順に並べたら幸せになれた

複数のブランチで並行開発をしていると,気付いたらブランチが増えてしまってることがよくある.

ブランチを切り替えようとしたときに「どのブランチだっけ?」って考えてしまったり.

定期的にブランチを削除するようにしてるけど,開発に忙殺されているフェーズほどブランチが増えるし,すぐに切り替えたいのってそういうときだし「あーもう!」ってなる.

ちなみに現在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 で使えるようにする.

関連エントリー