Git 允许某些命令在不先打开编辑器的情况下创建或修改提交,例如:
git commit --amend --no-edit
git commit --fixup=HEAD^
我已经设定rebase.autosquash
to true
,以便交互式变基的待办事项列表自动重新排序。有没有办法立即执行变基,而无需先打开编辑器,例如:
git rebase -i --no-edit HEAD~3
TL;DR 答案:GIT_SEQUENCE_EDITOR=: git rebase -i HEAD~3
你无法停止git rebase --interactive
运行“序列编辑器”(这是包含各种选择等命令的“序列文件”上的编辑命令)。但是,如果您检查交互式变基脚本:
$ vim $(git --exec-path)/git-rebase--interactive
你会在第 230 行左右找到这样的代码:
git_sequence_editor () {
if test -z "$GIT_SEQUENCE_EDITOR"
then
GIT_SEQUENCE_EDITOR="$(git config sequence.editor)"
if [ -z "$GIT_SEQUENCE_EDITOR" ]
then
GIT_SEQUENCE_EDITOR="$(git var GIT_EDITOR)" || return $?
fi
fi
eval "$GIT_SEQUENCE_EDITOR" '"$@"'
}
因此,您只需将序列编辑器设置为“编辑”命令,该命令不执行任何操作,然后就会成功,例如 shell 的内置命令:
命令,或true
命令。
(Any of $GIT_SEQUENCE_EDITOR
,配置的sequence.editor
, or $GIT_EDITOR
就足够了,尽管明显最好使用的是第一个。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)