
TL;DR
Git 2.54 and 2.55 introduced git history with fixup, reword, and split subcommands that make interactive rebasing feel less scary. Here is what developers are saying.
Working with parallel changes in Git has always been painful. You juggle branches, run scary rebase -i commands, and pray nothing breaks. Git 2.54 (April 2026) and 2.55 (June 2026) introduced an experimental git history command that addresses these pain points directly.
The new command packages three common rebase workflows into dedicated subcommands: fixup, reword, and split. Each one handles a specific use case that previously required careful interactive rebasing.
Fixup applies staged changes to an old commit, then automatically rebases all dependent branches. The key difference from manual rebasing: it updates every local branch descended from the target commit, not just those in your active rebase range.
# Stage the fix
git add -p
# Apply it to an old commit
git history fixup abc123
Reword changes an old commit's message and rebuilds the stack above it. No need to touch your working directory or disrupt unrelated branches.
git history reword abc123
Split breaks one commit into two through an interactive hunk-selection process. This eliminates the gymnastics of using git rebase -i with edit to manually split commits.
git history split abc123
All three operations are atomic. They refuse to run if conflicts would occur, which means they never leave your repository in a half-broken state. Compare this to interactive rebase, where a conflict mid-operation can leave you hunting for --abort while your working tree is in limbo.
Newsletter
Get the weekly deep dive
Tutorials on Claude Code, AI agents, and dev tools, delivered free every week.
From the archive
Jul 13, 2026 • 5 min read
Jul 13, 2026 • 6 min read
Jul 13, 2026 • 7 min read
Jul 13, 2026 • 6 min read
The Hacker News discussion (337 points, 200+ comments) shows a split community.
The enthusiasts see this as Git finally catching up to tools like jj (Jujutsu). As one commenter summarized: "Newer versions of git implemented three really frequent use cases of git rebase --interactive as separate lower-friction commands."
The skeptics question the premise. One developer argued: "I like to be like an accountant. No editing history. Create a new commit to fix." Another game dev perspective: "This kind of repo defiling just gives me the willies. Instead of finding a common ancestor and altering it, just make the desired change upstream and merge it."
The practical users focused on specific wins. One noted that git history split will help juniors break up large PRs into smaller changes. Another appreciated git history reword for fixing typos in older commits without the full rebase workflow.
The debate around history editing versus append-only workflows reflects a longstanding divide. Teams that squash-merge before integrating often care less about commit hygiene during development. Teams that preserve history tend to want cleaner intermediate commits.
Some commenters compared git history to jj, a Git-compatible version control system that takes a different approach to change management. jj treats working directory changes as automatic commits and makes rebasing more intuitive.
The difference: git history works within Git's existing model, while jj is a separate tool with its own mental model. For teams already invested in Git workflows, git history offers incremental improvement without requiring everyone to learn a new system.
A critical constraint: these commands only work when there are no conflicts. If your fixup would create a merge conflict, git history refuses to proceed. This is both a safety feature and a limitation - you cannot use it for complex history surgery where conflicts are inevitable.
For conflict-heavy rewrites, you still need interactive rebase with its full conflict resolution flow.
The command is marked experimental, so behavior may change in future releases. That said, if your workflow involves frequent small fixes to old commits - fixing typos, adding missing imports, adjusting log messages - git history fixup is worth trying.
For teams that enforce commit message conventions, git history reword simplifies compliance fixes without requiring a full mental context switch into rebase mode.
Check your Git version:
git --version
# Needs 2.54+ for reword/split, 2.55+ for fixup
Update if needed:
# macOS
brew upgrade git
# Ubuntu/Debian
sudo add-apt-repository ppa:git-core/ppa
sudo apt update && sudo apt install git
Then try it on a test repository before using it in production code.
Read next
Most developers only know .gitignore, but Git offers two other ignore mechanisms for local workflows and machine-wide patterns. Here's when to use each.
5 min readAuto-installing tree-sitter grammars, built-in markdown mode, window layout commands, and more - the upcoming Emacs release absorbs features that used to require external packages.
6 min readOak rethinks version control for agentic workflows with virtual mounts, faster snapshots, and lower VCS-related token overhead. Here's what the HN community thinks about this Show HN.
8 min readTechnical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
Share agent traces with a link. Keep history long enough to find the bug.
View AppKnow what each agent run cost before the bill arrives. Budgets and alerts included.
View AppGive your agents a filesystem that branches like git. Crash-safe by default.
View AppPer-directory prompt history with Ctrl+R reverse search.
Claude CodeContext-aware follow-up suggestions derived from git history.
Claude CodeThe primary command-line entry point for Claude Code sessions.
Claude Code
Most developers only know .gitignore, but Git offers two other ignore mechanisms for local workflows and machine-wide pa...

A workflow for archiving, signing, notarizing, and distributing Apple apps entirely from the command line - with AI codi...

New research shows Claude Code's system prompt and tool scaffolding consume 4.7x more tokens than OpenCode before proces...

Ginger Bill argues that the best tools disappear during use - and that celebrating workarounds is a sign your tool has f...

The HashiCorp co-founder explains why he chose Zig over Rust for Ghostty, the technical challenges of terminal emulator...

Microsoft ships TypeScript 7.0 with a complete Go rewrite of the compiler, delivering 8-12x build speedups and transform...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.