我怎样才能自动接受git rebase --interactive给我的内容?

Fre*_*abe 4 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().strip()
os.system( "git commit --message \"fixup! %s\"" % logmsg )
os.system( "git rebase --interactive --autosquash %s~2" % broken_commit )
Run Code Online (Sandbox Code Playgroud)

在这一点上,我遇到了一个编辑器,只需要确认(:wq在我的情况下)所显示的更改.我怎样才能避免这最后一步?我想让这git rebase条线继续下去而不给我机会编辑显示的步骤.

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

Fre*_*abe 5

设置环境变量EDITORtrue运行前git rebase将使其自动接受所示的变化.

  • 你可以使用`GIT_EDITOR`来防止其他任何事情发生,尽管它应该在子壳中运行,所以没有实际意义.您也可以将其设为别名:`rbas ='!export GIT_EDITOR = true; git rebase --interactive --autosquash'`或者在python脚本的情况下,只需将环境变量设置为与调用git rebase相同的`system`调用. (2认同)