
2026/08/25 23:57
最新コミット日付でブランチをソートする
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
改良されたサマリーは、欠落していた詳細(例えば他のソートキーや特定の古いスクリプト)を統合し、可読性を保ちつつより完全な概要を提供します。
改良されたサマリー:
現代の Git バージョンでは、ユーザーがコミット日付で直接ブランチをソートできるようにすることで、複雑な外部スクリプト(例:
git branch | sed ...)を使用する必要性を取り除き、ブランチ管理を大幅に簡素化しています。以前、多数のブランチを管理していた開発者は、最近のアクティビティをフィルタリングするために git log と sed を使用した煩雑な手順に依存していました。新しい機能は、git-for-each-ref で定義されたネイティブソートキーを活用しており、committerdate、authordate、creatordate、taggerdate などの基準だけでなく、contents:size のようなコンテンツメトリクスも受け入れます。ユーザーは一度きりのコマンド(例: git branch --sort committerdate)で即座にこの機能を利用したり、git config branch.sort committerdate を使用して設定を永続化したりできます。この変化により、カスタムスクリプティングの技術的障壁が解消され、リポジトリの保守性が個々の開発者も企業にとっても大幅に向上します。脆弱なカスタムソリューションではなく標準的なビルトイン機能に依存することで、チームは理解しやすく、長期的に維持しやすいクリーンなワークフローを確立できます。本文
Git ブランチソートの新たなアプローチ
従来の複雑なスクリプトの限界
過去に多くの開発者が直面した課題として、Git のブランチ数が多くなるにつれて最新のものを可視化する難しさがあります。これに対処するために作成された代表的なスクリプトは以下の通りです。
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 に設定を行うだけで、ブランチを最後のコミットの日付に基づいて自動的にソートすることが可能です。
永続的な設定
設定ファイルに追加することで、すべてのコマンドで有効化できます。
git config branch.sort committerdate
一時的な指定
特定の作業だけを対象にする場合は、オプションを直接指定します。
git branch --sort committerdate
利用可能なソートキー
Git のマニュアルでは、
git-for-each-ref(1) でサポートされているキーと同じものが利用できるとされています。このコマンドのマニュアルページには多数のフィールドがリストされていますが、開発用途として特に有用なものを以下に紹介します。
主要なソートキー一覧
- authordate, committerdate, creatordate, taggerdate
- コミットやタグの作成者(コミッター)に関連する日付情報です。
- contents:size
- コミットまたはタグメッセージのサイズ(バイト単位)でソートできます。
- push
- 表示される参照(ref)の
位置を表すローカルの参照名です。@{push}
- 表示される参照(ref)の
- refname
- 参照そのものの名前(
の直後の部分;これがデフォルトの設定です)。$GIT_DIR/
- 参照そのものの名前(
- upstream
- 表示されている参照から「上流」とみなせるローカル参照の名前です。
これらのキーを活用することで、ブランチ管理を効率化できます。