[ANN] git-branchstack: make pull-requests without switching branches
Johannes Altmanninger
2021-10-18 19:57:55 UTC
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.