Programmatically edit the git rebase sequence?
- From
- Matthias Beyer <mail@beyermatthias.de>
- Date
- Jul 3, 2026, 12:02 UTC
- Message-ID
- <akei64goQf3nFhX4@hikari>
Hi git people,
in a recent conversation at work, the question of how to programmatically edit the git-rebase sequence came up.
Example use case:
I have a branch that touches a number of files, adds some files and removes some files. When rebasing, I want to split all commits that touched a certain subset of files, for the clearity of the history.
I look at the output of
git log master..mybranch --oneline --diff-filter=M -- "./subdir/*.rs"
to find all commits in that subdir that only touched the files. All of these commits are to be "edit"ed.
Now I fire up `git rebase -i master` and manually(!) match the list from above `git-log` call and find the respective commits to edit them.
Is there a way I am not aware of to do that manual step programatically? Something like
git rebase -i master --edit-commits="$(git log master..mybranch --diff-filter=M --format="%H" -- "./subdir/*.rs")"
would be convenient here, although I would understand if that is too much clutter for the already very heavy git CLI interface :-)
Maybe I am just not aware of the obvious solution - I would be happy to learn that there is already one!
Best, Matthias