A handy tool for doing efficient in-memory commit rebases & fixups
git reviseis a
gitsubcommand to efficiently update, split, and rearrange commits. It is heavily inspired by
git rebase, however it tries to be more efficient and ergonomic for patch-stack oriented workflows.
By default,
git revisewill apply staged changes to a target commit, then update
HEADto point at the revised history. It also supports splitting commits and rewording commit messages.
Unlike
git rebase,
git reviseavoids modifying the working directory or the index state, performing all merges in-memory and only writing them when necessary. This allows it to be significantly faster on large codebases and avoids unnecessarily invalidating builds.
$ pip install --user git-revise
Various people have also packaged
git revisefor platform-specific package managers (Thanks!)
$ brew install git-revise
$ dnf install git-revise
Documentation, including usage and examples, is hosted on Read the Docs.