我怎样才能自动接受git rebase——交互式礼物?

我怎样才能自动接受git rebase——交互式礼物?,git,Git,我正在使用一个小脚本来修复过去的提交。该脚本假定已暂存对中断提交的修复,工作目录是干净的,并且已在命令行上传递中断提交。以下是脚本的原始Python核心: #!/usr/bin/env python import os import sys broken_commit = sys.argv[1] logmsg = os.popen( "git log --format=%%s %s~1..%s" % ( broken_commit, broken_commit ), 'r' ).read()

我正在使用一个小脚本来修复过去的提交。该脚本假定已暂存对中断提交的修复,工作目录是干净的,并且已在命令行上传递中断提交。以下是脚本的原始Python核心:

#!/usr/bin/env python
import os
import sys

broken_commit = sys.argv[1]

logmsg = os.popen( "git log --format=%%s %s~1..%s" % ( broken_commit, broken_commit ), 'r' ).read().strip()
os.system( "git commit --message \"fixup! %s\"" % logmsg )
os.system( "git rebase --interactive --autosquash %s~2" % broken_commit )
此时,我看到了一个编辑器,只需要确认所显示的更改(
:wq
)。我怎样才能避免这最后一步?我希望
git-rebase
行继续进行,而不给我编辑所示步骤的机会


我听说您可以通过编辑器环境变量设置特殊的脚本来实现。但是,我在Windows上使用msysGit,所以我在这方面有点受限。

在运行
git-rebase
之前,将环境变量
EDITOR
设置为
true
,将使其自动接受显示的更改。

我想说的是,“不要使用--interactive”,但是我阅读了autosquash的文档:“这个选项只有在使用--interactive选项时才有效。”Bummer+一个好问题!如果您想尝试一下,在git-rebase--interactive.sh中添加--autoaccept选项可能非常简单。@mathepic:可能,但使用三个开关
--interactive
,,
--autosquash
--autoaccept
——它们中的每一个都只有在指定了前置程序时才有意义。您可以使用
GIT\u编辑器
来避免意外地弄乱任何其他内容,尽管它无论如何都应该在子shell中运行,所以没有意义。您还可以将其设置为别名:
rbas='!导出GIT_编辑器=true;git rebase--交互式--autosquash'
或者在python脚本中,只需在调用git rebase时调用的
system
中设置环境变量。