[ANN] git-branchstack: make pull-requests without switching branches

Johannes Altmanninger aclopte at gmail.com
Mon Oct 18 20:57:55 BST 2021

I like to keep all in-flight commits in a single local branch, so I can test
them in combination and update them easily. git-branchstack allows me to
send select commits upstream as pull requests (for projects that don't accept
patches).  By never touching the worktree, it avoids invalidating builds. See


To implement this I needed a way to reword (change the commit
message) and reparent commits.  I used the "rebase" function from [git
revise](https://git-revise.readthedocs.io/).  Unlike "git merge-tree"
this can change commit messages, and allows me to resolve conflicts using a
temporary file.  I didn't find another easy way to do this (without touching
my worktree/index).  Is there a plumbing command I can use to create a copy
of a commit, but with a different commit message?

I wonder if there are more use cases for creating/updating commits that are
not on the current branch.
Future "git rebase -i" should only update worktree files when needed (see the
"TODO:" comments in sequencer.c).  Rewording never needs that, so it could,
in theory, work on branches that are not checked out, though that would
complicate the rebase UI even more.

More information about the git-announce mailing list