alterando commits anteriores

git commit --amend é simples de usar … mas e se o commit não for o commit mais recente?

Primeiro, você descobrirá qual é o SHA do commit que deseja alterar. Em git rebase SHA~1seguida, altere ‘escolher’ para ‘editar’.

Neste ponto, você está em um estado HEAD separado (seu HEAD aponta para aquele commit específico, não para um branch).

Você pode fazer qualquer alteração aqui e git commit --amendentão git rebase --continue.


No entanto, na minha experiência, às vezes preciso testar as alterações que fiz, no entanto, algo está quebrado e que consertei em um commit futuro (após este).

Então, mudei meu fluxo de trabalho de acordo …

Antes de rebase, eu faria as alterações que desejo, testaria e então …

git commit -m "foo"
git rebase SHA
~1
move the
"foo" commit to the second line and change 'pick' to 'fixup'

Feito.

Nota

Eu uso ambos os itens acima … dependendo da situação.