Для последнего коммита достаточно git commit --amend, который перезакоммитит при выполнении ряда разумных условий добавленные после коммита изменения «заодно».
ниже — фрагмент письма Alexey Tourbin в devel@
[...]
То есть по сути иногда не хочется делать новые коммиты, которые
являются мелкими исправлениями к предыдущим коммитам. Поэтому я
предлагаю такое правило для использования git push --force: нельзя
заменять коммиты дальше последнего публичного тага, или же дальше
коммита, отправленного на сборку в incominger.
Допустим, что эти условия выполнены, а исправления мелких/глупых ошибок
не хочется оформлять отдельно. Для примера объясню, как поправить
пред-предпоследний коммит.
Сначала нужно сохранить текущую работу во временный бранч:
Потом нужно откатить работу до пред-предпоследнего коммита:
Теперь нужно поправить пред-предпоследний коммит, который стал текущим:
Затем поверх пред-предпоследнего коммита нужно накатить предпоследний и
последний коммиты из сохраненного бранча:
Осталось только удалить временный бранч:
После этого уже можно сделать
(Последнее означает, что содержимое .git/remotes/git.alt может выглядеть
как URL: git.alt:/people/$USER/packages/%name.git)