Git 2.54 ships with contributions from 137 people, 66 of them first-time contributors, and covers ground not touched since 2.52. Two releases worth of changes landed at once.
The headline addition is `git history`, an experimental command with two operations: `reword` and `split`. It rewrites commit messages or splits commits into two without touching your working tree or index, and works in bare repositories. It refuses merge commits and will not proceed if a conflict would result. This is not a replacement for `git rebase -i`. It is a scalpel for the cases where rebase is a sledgehammer. The implementation is built on top of `git replay` internals, which were refactored into a library specifically to support this. That architecture detail matters: it signals a design intent toward scriptable, automation-friendly history editing. The command is still experimental and its interface may change.
Config-based hooks are the other major structural change. Previously, sharing hooks across repositories meant symlinks, copied scripts, or a third-party manager. Git 2.54 lets you define hooks directly in configuration files using a named `[hook]` block with an `event` key, which means global config can carry hooks that apply everywhere without forcing all repositories into a single shared hook directory. The full configuration syntax and the interaction between config-level and filesystem-level hooks is worth reading in the original for anyone managing hooks at scale.
[READ ORIGINAL →]