Versão do artigo: GitHub.com
Alterar a mensagem do commit
Se uma mensagem do commit contiver informações imprecisas, incorretas ou confidenciais, você poderá corrigi-las localmente e fazer push de um novo commit com uma nova mensagem para o GitHub. Também é possível alterar uma mensagem do commit para adicionar informações ausentes.
Neste artigo
Were you able to find what you were looking for?
Thank you! Your feedback has been submitted.
Reescrever a mensagem do commit mais recente
Você pode alterar a mensagem do commit mais recente usando o comando git commit --amend.
No Git, o texto da mensagem do commit faz parte do commit. Alterar a mensagem do commit mudará a ID do commit, isto é, a soma de verificação SHA1 que nomeia o commit. Efetivamente, você está criando um commit que substitui o antigo.
Não foi feito push online do commit
Se o commit existir em seu repositório local e não tiver sido publicado no GitHub, você poderá corrigir a mensagem do commit com o comando git commit --amend.
-
Na linha de comando, navegue até o repositório que contém o commit que você deseja corrigir.
-
Digite
git commit --amende pressione Enter. -
No editor de texto, edite a mensagem do commit e salve o commit.
-
Você pode adicionar um coautor incluindo um trailer no commit. Para obter mais informações, consulte "Criar um commit com vários autores".
-
É possível criar commits em nome da sua organização adicionando um trailer ao commit. Para obter mais informações, consulte "Criar um commit em nome de uma organização"
-
O novo commit e a mensagem aparecerão no GitHub na próxima vez que você fizer push.
Você pode alterar o editor de texto padrão do Git mudando a configuração core.editor. Para obter mais informações, consulte a seção sobre a "configuração básica de cliente" no manual do Git.
Corrigir mensagens do commit antigas ou em grandes quantidades
Se você já tiver feito push do commit no GitHub, será necessário forçar o push de um commit com uma mensagem corrigida.
O recomendável é evitar tanto quanto possível o push forçado, uma vez que isso altera o histórico do repositório. No caso de push forçado, as pessoas que já clonaram o repositório terão que corrigir manualmente o respectivo histórico local. Para obter mais informações, consulte a seção sobre como "recuperar usando rebase upstream" no manual do Git.
Corrigir a mensagem do commit com push mais recente
- Siga as etapas acima para corrigir a mensagem do commit.
- Use o comando
push --forcepara forçar o push sobre o commit antigo.$ git push --force example-branch
Corrigir mensagens do commit antigas ou em grandes quantidades
Se precisar corrigir a mensagem de vários commits ou de um commit antigo, você pode usar o rebase interativo e, em seguida, forçar o push para alterar o histórico do commit.
-
Na linha de comando, navegue até o repositório que contém o commit que você deseja corrigir.
-
Use o comando
git rebase -i HEAD~npara exibir uma lista dosnúltimos commits no seu editor de texto padrão.# Displays a list of the last 3 commits on the current branch $ git rebase -i HEAD~3A lista ficará parecida com o seguinte:
pick e499d89 Delete CNAME pick 0c39034 Better README pick f7fde4a Change the commit message but push the same commit. # Rebase 9fdb3bd..f7fde4a onto 9fdb3bd # # Comandos: # p, pick = usar commit # r, reword = usar commit, mas editar a mensagem do commit # e, edit = usar commit, mas interromper para correção # s, squash = usar commit, mas combinar com commit anterior # f, fixup = como "squash", mas descartar a mensagem de log do commit # x, exec = executar o comando (o restante da linha) usando shell # # Essas linhas podem ser reordenadas; elas são executadas de cima para baixo. # # Se você remover uma linha aqui ESSE COMMIT SERÁ PERDIDO. # # No entanto, se você remover tudo, o rebase será anulado. # # Observe que commits vazios são comentados -
Substitua
pickporrewordantes de cada mensagem do commit que deseja alterar.pick e499d89 Delete CNAME reword 0c39034 Better README reword f7fde4a Change the commit message but push the same commit. -
Salve e feche o arquivo da lista de commits.
-
Em cada arquivo de commit resultante, digite a nova mensagem do commit, salve o arquivo e feche-o.
-
Force o push dos commits corrigidos.
$ git push --force
Para obter mais informações sobre rebase interativo, consulte a seção sobre o "modo interativo" no manual do Git.
Tal como antes, corrigir a mensagem do commit resultará em um novo commit com uma nova ID. No entanto, nesse caso, cada commit que segue o commit corrigido também obterá uma nova ID, pois cada commit também contém a id de seu principal.
Se você incluiu informações confidenciais em uma mensagem do commit, forçar o push de um commit com um commit corrigido pode não remover o commit original do GitHub. O commit antigo não fará parte de um clone subsequente. No entanto, ele ainda poderá ser armazenado no cache do GitHub e ser acessado por meio da ID do commit. Você deve contatar o Suporte do GitHub or Suporte do GitHub Premium com a ID do commit antigo para que ele seja apagado do repositório remoto.
Leia mais
Were you able to find what you were looking for?
Thank you! Your feedback has been submitted.