Highlights from Git 2.54

· devtools open-source · Source ↗

TLDR

  • 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.

Original | Discuss on HN