プログラミング
コミット日時でGitブランチをソートする
Sort branches by last commit date (ryangreenberg.com)
要約
多くのGitブランチを持つ開発者が、最新のブランチを表示するために複雑なスクリプトを作成していました。しかし、最近のGitでは`git config branch.sort committerdate`という簡単な設定で、コミット日時によるソートが可能です。この設定により、手動でのスクリプト作成は不要になります。
全文翻訳
TIL: コミット日時でブランチをソートする
2026年8月24日午前9時55分
私はGitブランチが多すぎます。多くの人がそうであるように、私も最新のブランチを表示するための複雑なスクリプトを開発しました。長年、私はこのコマンドを1日に何度も実行していました:
function branches {
for k in `git branch | sed "s/^..//"`; do
echo -e `git log --color -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" "$k"`\t"$k"
done | sort
}
これは、sortコマンドが機能するように、出力の最初の列に日付を出力します。最新のGitでは、これは完全に不要であることがわかりました。単にgit branchをコミット日時でソートするように設定するだけです:
git config branch.sort committerdate
一時的な使用として、git branch --sort committerdate と指定することもできます。
他に何をソートできるでしょうか?マニュアルによると、「サポートされているキーはgit-for-each-ref(1)と同じです。」git-for-each-refのマニュアルページには、私にはソートキーとして意味をなさないものが含まめ、多くのフィールドがリストされています。興味深いと思われるものをいくつか紹介します:
authordate, committerdate, creatordate, taggerdate
contents:size: コミットまたはタグメッセージのバイト単位のサイズ。
push: 表示されている参照の @{push} 場所を表すローカル参照の名前。
refname: 参照の名前($GIT_DIR/の後ろの部分)(これがデフォルトです)。
upstream: 表示されている参照の「アップストリーム」と見なすことができるローカル参照の名前。
Git