Instead of git rebase -i and editing manually is there a possibility to supply git rebase with the pick/drop/squash list as a text file, or do I need to redirect GIT_EDITOR to a script that supplies it ?
You'll need to use GIT_EDITOR or GIT_SEQUENCE_EDITOR to edit the file in place. That program will receive the file name as its argument, and can be a shell command, so you can do something like this:
GIT_SEQUENCE_EDITOR='sed -i -e '\''2,$s/^pick/fixup/'\' git rebase
The difference between the two editors is that GIT_SEQUENCE_EDITOR only applies to the rebase todo list, but not to other things like commit messages, whereas GIT_EDITOR applies to both. So, for example, if you want to automatically squash in all squash and fixup commits created by git commit --squash and git commit --fixup without prompting, you can do this:
GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash main
That automatically accepts the squash and fixup commands without prompting, but still leaves your normal editor for editing commit messages due to squash commits.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With