Git 2.54 ships git history (reword/split), config-based hooks, geometric repacking as default, and HTTP 429 retry support.
Key Takeaways
git history reword <commit> rewrites a commit message without touching the working tree or index; works in bare repos.
git history split <commit> uses an add -p-style hunk interface to split a commit into two, but refuses merge commits and conflict-causing operations.
Config-based hooks (hook.<name>.event, hook.<name>.command) can live in ~/.gitconfig or system config, enabling multiple hooks per event and enabled = false overrides.
Geometric repacking is now the default strategy for git maintenance run, replacing the expensive all-into-one gc repack.
git log -L now routes through the standard diff pipeline, making it compatible with -S/-G pickaxe searches for the first time.
Hacker News Comment Review
Commenters widely noted that git history reword and git history split mirror Jujutsu’s jj describe and jj split, suggesting JJ’s ergonomics are influencing Git core design.
Config-based hooks drew skepticism: per-repo config lives in .git/config, which is not checked into the repo, so the feature does not solve the onboarding problem of ensuring contributors run the same hooks.
Several developers noted git history split does not yet replace the rebase -i + reset HEAD~ + add -p workflow because it lacks hunk-editing, only hunk-selection.
Notable Comments
@the_duke: config-based hooks miss the mark for shared repo hooks since .git/config is not committed; suggests a checked-in .githooks dir with an opt-in approval prompt.
@adregan: git history split still can’t edit hunks, so the rebase -i + reset HEAD~ + add -p workflow isn’t fully replaceable yet.