Я использую небольшой скрипт для исправления прошлых коммитов.Сценарий предполагает, что исправление для поврежденной фиксации находится в стадии подготовки, что рабочий каталог является чистым и что поврежденная фиксация передается в командной строке.Вот необработанное ядро 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.Однако я использую msysGit в Windows, поэтому я немного ограничен в этой области.