Git 2.56がhistory dropとdelete-mergedを追加
Git 2.56(ギット)はマージ以外のコミットを700件以上含み、2026年9月末の公開が見込まれます。コミットの削除とブランチ整理の新しいコマンドが入ります。
3 分で読めます

数字で見る
- non-merge commits in the 2.56 release
- 700+
- version due at the end of September 2026
- 2.56
Git 2.56はリリース候補の段階にあり、2026年9月末の公開が見込まれています。LWN.netの報道によると、このリリースにはマージ以外のコミットが700件以上含まれます。その多くは土台の改修です。ただし少数の新しいコマンドは、対話的リベースに頼らずに何ができるかを変えます。
LWNは2.56を「堅実なリリース」と呼び、プロジェクトは「より重要な作業の多くを将来のために取っておいている」と書いています。その将来がGit 3.0です。
新しいコマンド
| コマンドまたはオプション | 何をするか |
|---|---|
git history drop | 指定したコミットを、その後のコミットを再適用してブランチから取り除く |
git repo info | リポジトリのパスを絶対・相対の両方で出力する |
git add --resolved | 競合を解消したマージ対象のパスだけをステージする |
git branch --delete-merged | 追跡先のリモートブランチへ既にマージ済みのローカルブランチを削除する |
git bisect --reset-when-found | bisectが目的のコミットを見つけたら元の状態へ戻す |
git replay --linearize | 履歴を再適用しながらマージコミットを落とす |
git refs | 参照の作成、削除、更新、名前変更を直接行う |
history dropができること、できないこと
git history dropは、指定したコミットをブランチから取り除きます。その後に来たコミットをすべて再適用する仕組みです。これは今、対話的リベースで1行ずつ慎重に入力して行っている作業です。
前提として知っておくべき制限があります。Gitのリリースノートは、履歴にマージコミットが含まれる場合、このコマンドは依然として動作を拒否すると述べています。現実のブランチの多くはマージを含みます。つまりこのコマンドは、長く共有されるブランチよりも、直線的な機能ブランチに向いています。
git replay --linearizeは同じ領域に反対側から近づきます。再適用しながらマージコミットを落とし、絡まった履歴を一直線に均します。
気づく範囲の小さな変更
git add --resolvedは、マージ途中のよくある混乱を狙ったものです。競合の解消中には、2つのファイルを直しつつ、他の編集を作業ツリーに残していることがよくあります。新しいオプションは、競合を解消したパスだけをステージし、それ以外のローカル変更には手を触れません。
git branch --delete-mergedは、追跡先のブランチへ既にマージされたローカルブランチを片付けます。さらにGitは、そのブランチがbisectに使われている場合、より分かりやすいメッセージを表示します。
Gitプロジェクトのリリースノートには、より静かな修正もいくつか並びます。Gitはgit push origin/mainのようなコマンドの打ち間違いを検出するようになりました。新しいfetch.followRemoteHEAD設定は、fetchがリモートの既定ブランチをどう扱うかを制御します。ヘルプを求めたときの終了コードは129ではなく0になりました。これでスクリプトがヘルプ要求を失敗と読むことがなくなります。設定コマンドは衝突時に再試行し、2つのコマンドが同時に設定を書くときのロックエラーを減らします。
その下では、git cat-file --batchの出力整形が速くなり、git log --followが非線形な履歴をこれまでよりうまく扱います。
これは開発者にとって何を意味するか
本物のブランチで使う前に、コピーでgit history dropを試してください。マージコミットの制限が、そもそも自分の進め方に合うかどうかを決めます。変更したい範囲にgit log --mergesを実行し、何か出力されるならコマンドは拒否します。
習慣に組み込む価値があるのはgit branch --delete-mergedです。多くの開発者は古いローカルブランチを何十も溜め込み、何年も前にブログから写したシェルのパイプラインで片付けています。組み込みのオプションのほうが安全です。名前の一致ではなく、追跡先のリモートブランチを確認するからです。
終了コードの変更は、自分の道具を見直す理由になります。129をヘルプ要求の合図として扱っていたスクリプトは、これからは0を受け取ります。これは正しい挙動ですが、挙動の変更であり、大きな音を立てずに静かに壊れます。
ここにある変更は既存のリポジトリを壊しません。壊すほうは次のリリースにあります。Git 3.0は新しいリポジトリをSHA-256とreftableへ切り替え、Rustをビルドの必須依存にします。Git自身の互換性変更の文書は、3.0の日付を今も示していません。2.56は、その前の最後の静かな停車駅と考えてください。
出典
- Looking forward to Git 2.56 - and 3.0 - LWN.net
- Git 2.56 release notes - Git project
関連記事

Kubernetes 1.37、rootlessモードがベータに昇格
Kubernetes 1.37でKubeletInUserNamespaceがベータになりました。kubelet、コンテナランタイム、CNIプラグイン、kube-proxyのすべてを非rootユーザーで動かせます。

DRBD 9、7本の準備パッチでLinuxメインライン入りに前進
LINBITは9月23日、カーネルのDRBD 8.4コードをDRBD 9の形に近づける7本のパッチを投稿した。DRBD 9は1ボリュームあたり最大31台のピアへのレプリケーション(複製)に対応する。

Jemalloc 5.4.0、Metaの再投資後に160超のコミット
Metaが再投資を表明して以降で初のjemalloc(ジェマロック)リリースは、160を超えるコミット、新しいOS抽象化層、CPUごとのarena選択を含みます。