👋 We've unified all of GitHub's product documentation in one place! Check out the content for REST API, GraphQL API, and Developers. Learn more on the GitHub blog.


Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.
Versão do artigo: Enterprise Server 2.19

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 Enterprise. Também é possível alterar uma mensagem do commit para adicionar informações ausentes.

Neste artigo

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 sua instância do GitHub Enterprise Server, você poderá corrigir a mensagem do commit com o comando git commit --amend.

  1. Na linha de comando, navegue até o repositório que contém o commit que você deseja corrigir.
  2. Digite git commit --amend e pressione Enter.
  3. No editor de texto, edite a mensagem do commit e salve o commit.

O novo commit e a mensagem aparecerão no sua instância do GitHub Enterprise Server 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 sua instância do GitHub Enterprise Server, 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

  1. Siga as etapas acima para corrigir a mensagem do commit.
  2. Use o comando push --force para 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.

  1. Na linha de comando, navegue até o repositório que contém o commit que você deseja corrigir.

  2. Use o comando git rebase -i HEAD~n para exibir uma lista dos n ú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~3

    A 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
  3. Substitua pick por reword antes 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.
  4. Salve e feche o arquivo da lista de commits.

  5. Em cada arquivo de commit resultante, digite a nova mensagem do commit, salve o arquivo e feche-o.

  6. 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 Enterprise. O commit antigo não fará parte de um clone subsequente. No entanto, ele ainda poderá ser armazenado no cache do GitHub Enterprise e ser acessado por meio da ID do commit. Você deve contatar o seu administrador do site do GitHub Enterprise com a ID do commit antigo para que ele seja apagado do repositório remoto.

Leia mais

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato