Как я могу легко исправить прошлый коммит?

Я просто читалвнесение изменений в один файл в прошлом коммите в git но, к сожалению, принятое решение «переупорядочивает» коммиты, а это не то, чего я хочу. Итак, вот мой вопрос:

Время от времени я замечаю ошибку в своем коде, работая над (не связанной) функцией. Быстрыйgit blame затем обнаруживается, что ошибка была введена несколько коммитов назад (я фиксирую довольно много, поэтому обычно это не последний коммит, который представил ошибку). На этом этапе я обычно делаю это:

git stash                      # temporarily put my work aside
git rebase -i <bad_commit>~1   # rebase one step before the bad commit
                               # mark broken commit for editing
vim <affected_sources>         # fix the bug
git add <affected_sources>     # stage fixes
git commit -C <bad_commit>     # commit fixes using same log message as before
git rebase --continue          # base all later changes onto this

Однако это случается так часто, что приведенная выше последовательность становится раздражающей. Особенно «интерактивный ребаз» скучен. Есть ли какой-нибудь ярлык для вышеуказанной последовательности, который позволяет мне дополнить произвольный коммит в прошлом поэтапными изменениями? Я прекрасно понимаю, что это меняет историю, но я делаю ошибки так часто, что мне бы очень хотелось иметь что-то вроде

vim <affected_sources>             # fix bug
git add -p <affected_sources>      # Mark my 'fixup' hungs for staging
git fixup <bad_commit>             # amend the specified commit with staged changes,
                                   # rebase any successors of bad commit on rewritten 
                                   # commit.

Может быть, умный сценарий, который может переписать коммиты с помощью инструментов сантехники или около того?

Ответы на вопрос(11)

Ваш ответ на вопрос