Re: Programmatically edit the git rebase sequence?
- From
Matt Hunter <m@lfurio.us>
- Date
- Jul 3, 2026, 14:33 UTC
- Message-ID
- <DJP0D7IZJ8WX.S1DDPT3KTQ95@lfurio.us>
- In-Reply-To
- <ake8OAIyK-ELs-fU@fruit.crustytoothpaste.net>
On Fri Jul 3, 2026 at 9:42 AM EDT, brian m. carlson wrote:
Show 16 quoted lines
> On 2026-07-03 at 12:02:33, Matthias Beyer wrote: >> >> 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 :-) > > Yes, such a thing exists. You want `GIT_SEQUENCE_EDITOR`, which is an > `EDITOR`-like command that edits the rebase list in place. So tools > like `ed`, `ex`, `sed -i`, `perl -i`, or `ruby -i` would be useful here.
Interesting tip - thanks!
Show 6 quoted lines
>
> I personally use this alias, which explicitly does not edit the sequence
> list, to automatically squash in all squash and fixup commits without
> prompting:
>
> srebase = "!f() { GIT_SEQUENCE_EDITOR=true git rebase -m -i --autosquash \"$@\"; };f"'git rebase --autosquash' does work now without the need to invoke --interactive mode. I believe we got this with f8f87e082798 (Merge branch 'ak/rebase-autosquash')