我正在使用一个小脚本来修复过去的提交。该脚本假定损坏提交的修复已经被暂存,工作目录是干净的,并且损坏的提交已经通过命令行传递。以下是脚本的原始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
命令能够继续执行,而不给我编辑步骤的机会。
我听说可以通过设置EDITOR环境变量来实现特殊脚本。然而,我在Windows上使用msysGit,所以在这方面有些受限制。
--interactive
、--autosquash
和--autoaccept
似乎是错误的——只有在前面指定了前导器时,它们才有意义。 - Frerich Raabe