Git users have gained an experimental way to revise earlier commits without manually assembling several lower-level operations. As of the July 14, 2026 event date, the `git history` command provided three subcommands—`fixup`, `reword` and `split`—designed to rebuild affected parts of a repository’s commit graph while keeping local branch pointers aligned.
The command arrived in stages, according to a technical account by developer Lalit Maganti. Git 2.54 introduced `reword` and `split` in April, while version 2.55 added `fixup` in June. It is distributed with Git itself, although it remains experimental.
`git history fixup <commit>` lets a developer stage a correction and fold it into an older target commit. Because changing that commit produces a new hash, later commits descended from it must also be recreated. The command handles that rebuilding and moves local branches that descend from the amended commit. Maganti noted that this reach can extend beyond `git rebase --update-refs`, which updates references only within the range currently being rebased. Users can also restrict the operation to the current branch.
The `reword` subcommand applies the same broad idea to a commit message. It opens the selected commit’s existing message for editing, then recreates subsequent commits and advances the relevant branch pointers. Since the underlying file contents are unchanged, the operation works on the commit graph and does not disturb the index or working tree.
For changes that should not have been combined, `git history split <commit>` presents the selected commit’s diff in an interactive, hunk-by-hunk flow. The chosen hunks form the first replacement commit, while the remainder becomes a second. Descendant commits are then rebuilt above that pair.
A central constraint is also part of the safety model: the history operations refuse to proceed if they would create a conflict. That makes each attempted rewrite atomic, avoiding an incomplete intermediate state, but it also limits what the tool can currently handle. The account says `fixup` does not work when merge commits are present.
Maganti compared the feature with Jujutsu, or `jj`, another version-control system that treats conflicts as first-class objects and can preserve a conflicted state during a rebase. The Git command does not reproduce that behavior, nor does it offer `jj`’s operation log, easy undo mechanism or model of the working copy as a commit. Its narrower appeal is compatibility: developers can try structured history editing inside the Git installation and workflow they already use.
For teams evaluating it, the trade-off is therefore clear. The command reduces the manual choreography involved in common local rewrites and follows dependent branches automatically, but its conflict refusal and merge limitation mean it is not a universal replacement for interactive rebasing or alternative version-control tools.


