Outra opção é criar uma "errata commit" adicional (e push) que referencia o objeto commit que contém o erro - o novo commit da errata também fornece a correção. Uma errata commit é uma confirmação sem alterações substanciais de código, mas uma importante mensagem de confirmação - por exemplo, adicionar um caractere de espaço ao arquivo leia-me e confirmar essa alteração com a mensagem de confirmação importante ou usar a opção git --allow-empty
. É certamente mais fácil e seguro do que rebasing, ele não modifica o histórico verdadeiro e mantém a branch tree limpa (usar amend
também é uma boa escolha se você está corrigindo o commit mais recente, mas um commit de errata pode ser um bom escolha para commits mais antigos). Esse tipo de coisa acontece tão raramente que simplesmente documentar o erro é bom o suficiente. No futuro, se você precisar pesquisar em um log git para uma palavra-chave de recurso, o commit (errôneo) original pode não aparecer porque a palavra-chave errada foi usada na confirmação original (o erro original) - no entanto, a palavra-chave aparecerá no errata commit, que então apontará para o commit original que tinha o erro de digitação. Aqui está um exemplo:
$ git log
commit 0c28141c68adae276840f17ccd4766542c33cf1d
Author: First Last
Date: Wed Aug 8 15:55:52 2018 -0600
Errata commit:
This commit has no substantive code change.
THis commit is provided only to document a correction to a previous commit message.
This pertains to commit object e083a7abd8deb5776cb304fa13731a4182a24be1
Original incorrect commit message:
Changed background color to red
Correction (*change highlighted*):
Changed background color to *blue*
commit 032d0ff0601bff79bdef3c6f0a02ebfa061c4ad4
Author: First Last
Date: Wed Aug 8 15:43:16 2018 -0600
Some interim commit message
commit e083a7abd8deb5776cb304fa13731a4182a24be1
Author: First Last
Date: Wed Aug 8 13:31:32 2018 -0600
Changed background color to red