Git 2.54 Debuts Experimental 'git history' Command for Simple Rewrites

From Xutepsj, the free encyclopedia of technology

Breaking: Git 2.54 Released with New 'git history' Command

The open-source Git project has released version 2.54, bringing an experimental new command, git history, designed for straightforward commit message edits and commit splitting. The release includes contributions from over 137 developers, 66 of whom are first-time contributors.

Git 2.54 Debuts Experimental 'git history' Command for Simple Rewrites
Source: github.blog

This update follows the 2.52 release, and the blog post covers highlights from both 2.53 and 2.54.

What’s New: 'git history' for Simple History Rewrites

Git 2.54 introduces git history, a command that handles two common rewrite tasks: rewording commit messages and splitting commits. Unlike git rebase -i, which can be complex and affect the working tree, git history operates directly on commits without touching your working tree or index.

“For simpler cases, interactive rebase feels like overkill,” said a Git core contributor. “git history is meant for targeted, non-interactive rewrites.”

Key Operations: reword and split

reword opens your editor with the commit's message and rewrites it in place, updating all descendant branches. It works even in bare repositories.

split lets you interactively pick hunks to carve into a new parent commit, using an interface similar to git add -p. After selection, Git creates a new commit with those changes as the parent of the original, which retains unselected hunks.

However, the command has limitations: it does not support merge commits and refuses operations that would cause merge conflicts. It is built on git replay’s core machinery.

Git 2.54 Debuts Experimental 'git history' Command for Simple Rewrites
Source: github.blog

Background

Git has long offered tools like git rebase -i for history rewriting, but that flexibility comes with complexity. Users often faced a steep learning curve for simple tasks like fixing a typo in a commit message three commits back.

The git history command aims to fill this gap, providing a lightweight alternative. It was developed over several releases and is now experimental in Git 2.54.

What This Means

For everyday Git users, git history reduces the friction of minor history edits. Developers can now fix commit messages or split commits without diving into full interactive rebases.

“This command makes atomic history edits accessible to everyone, not just Git power users,” noted a release manager. The feature is experimental, so users should test it in non-critical repositories first.

Moving forward, git history may evolve to support more operations, but for now it targets the most common simple rewrites.