有没有办法预先提供 git rebase 与用于 rebase 的列表
Is there a way to presupply git rebase with the list to use for rebase
而不是 git rebase -i
和手动编辑是否有可能将 git rebase
与 pick/drop/squash 列表作为文本文件提供,或者我是否需要重定向 GIT_EDITOR到提供它的脚本?
您需要使用 GIT_EDITOR
或 GIT_SEQUENCE_EDITOR
就地编辑文件。该程序将接收文件名作为其参数,并且可以是 shell 命令,因此您可以这样做:
GIT_SEQUENCE_EDITOR='sed -i -e '\''2,$s/^pick/fixup/'\' git rebase
两个编辑器的区别在于GIT_SEQUENCE_EDITOR
只适用于变基待办事项列表,而不适用于其他内容,如提交消息,而GIT_EDITOR
适用于两者。因此,例如,如果您想在不提示的情况下自动压缩 git commit --squash
和 git commit --fixup
创建的所有压缩和修复提交,您可以这样做:
GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash main
这会在没有提示的情况下自动接受 squash 和 fixup 命令,但由于 squash 提交,仍然让您的普通编辑器编辑提交消息。
而不是 git rebase -i
和手动编辑是否有可能将 git rebase
与 pick/drop/squash 列表作为文本文件提供,或者我是否需要重定向 GIT_EDITOR到提供它的脚本?
您需要使用 GIT_EDITOR
或 GIT_SEQUENCE_EDITOR
就地编辑文件。该程序将接收文件名作为其参数,并且可以是 shell 命令,因此您可以这样做:
GIT_SEQUENCE_EDITOR='sed -i -e '\''2,$s/^pick/fixup/'\' git rebase
两个编辑器的区别在于GIT_SEQUENCE_EDITOR
只适用于变基待办事项列表,而不适用于其他内容,如提交消息,而GIT_EDITOR
适用于两者。因此,例如,如果您想在不提示的情况下自动压缩 git commit --squash
和 git commit --fixup
创建的所有压缩和修复提交,您可以这样做:
GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash main
这会在没有提示的情况下自动接受 squash 和 fixup 命令,但由于 squash 提交,仍然让您的普通编辑器编辑提交消息。