DEVELOPMENT / DEVOPS / GIT 2.56
Git 2.56は派手な新機能だけでなく、レビューとリポジトリ保守で起きがちな小さな事故を減らす更新です。
git add --resolvedは競合中のパスだけを対象にし、競合マーカーが残っている通常ファイルがあればステージを中止します。[release][github]git branch --delete-mergedやgit bisect run --reset-when-foundも追加。履歴探索の高速化は特定条件での測定値であり、すべてのリポジトリに同じ効果が出るわけではありません。[release][github]マージ競合を直した後、git add -uで変更済みファイルをまとめてステージすると、作業前からあった無関係な変更まで次のコミットに混ざることがあります。逆に、競合マーカー<<<<<<<を消し忘れたままステージすることもあります。Git 2.56はこの工程を狭く扱う--resolvedを追加しました。[^github]
| 変更 | できること | 注意点 |
|---|---|---|
git add --resolved | 未解決状態のパスだけをステージ | 通常のテキスト競合マーカーを確認するが、内容の正しさまでは判定しない |
git branch --delete-merged | 追跡先へ取り込まれたローカルブランチをまとめて整理 | まず--dry-runで候補を見る |
git bisect run --reset-when-found | 原因コミット特定後にbisect状態を自動整理 | テストスクリプトの終了コードが正しいことが前提 |
Gitの公式リリースノートがこれらの追加を確認できます。GitHubの解説は--resolvedが未マージのパスだけを見て、選択したテキストファイルに競合マーカーが一つでも残れば対象を一切ステージしないと説明しています。削除やバイナリ競合にはテキストマーカーの検査は適用されません。[release][github]
Git 2.56はmerge-base探索を、片側にしか属さない未処理コミットがなくなれば早期に止めるよう改善しました。GitHubは実リポジトリの一例で0.68秒から0.01秒、Linuxカーネルの特定クエリで0.29秒から0.01秒を報告しています。これはGitHubが示すケースの値で、一般的な「70倍高速化」の保証ではありません。Git公式ノートもアルゴリズム改善を記載しています。[release][github]
競合解消のステージング対象を限定できれば、レビューで無関係な差分を見落とすリスクを減らせます。ブランチ整理を定型化する際も、追跡先に取り込まれたことを確認してから候補を一覧化できます。一方、既存のCIや開発者端末のGitが2.56未満なら新オプションは使えません。社内の開発環境・コンテナイメージ・runnerのバージョンを先に把握する必要があります。
git --versionで実行環境を点検git --version
git status --short
# 競合ファイルを編集してから、Git 2.56以降で実行
git add --resolved
git diff --cached --check
git diff --cached
git add --resolvedは競合解消の代わりではありません。内容とテスト結果を確認し、ステージされた差分をレビューしてからコミットします。ローカルブランチ整理は候補の確認だけを先に行います。[^github]
git branch --delete-merged 'origin/*' 'topic-*' --dry-run
上記は削除を実行しません。追跡先設定のないブランチや別worktreeで使用中のブランチなどは対象外になります。実際の削除はチームの保護ルールと候補を照合してから判断してください。[^github]
git history dropなどの履歴書き換え機能も加わりましたが、こちらは実験的で、共有済み履歴への適用には慎重さが必要です。本記事の導入手順には含めません。GitLabの解説は将来のGit 3.0に向けた変更予定にも触れていますが、日程や互換性は今後の正式発表を追う必要があります。[^gitlab]
CIイメージや開発者端末への2.56の普及、--resolvedの運用フィードバック、大規模リポジトリでのmerge-base実測を確認したいところです。性能比較は自社の履歴を使い、同一マシン・同一コマンドで更新前後を測るのが妥当です。
最終確認日:2026年10月1日(日本時間)。Git 2.56の公開は9月、GitHubとGitLabの解説記事は9月28日です。[release][github][^gitlab]
[^release]: Git公式:Git v2.56 Release Notes [^github]: GitHub Blog:Highlights from Git 2.56(2026年9月28日) [^gitlab]: GitLab Blog:What's new in Git 2.56.0?(2026年9月28日) [^windows]: Git公式:Git for Windowsの公開ページ