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.

Esta versão do GitHub Enterprise foi descontinuada em 2021-03-02. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

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 Server. 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á o 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 on-line do commit

Se o commit existir em seu repositório local e não tiver sido publicado no your GitHub Enterprise Server instance, 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 your GitHub Enterprise Server instance 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 your GitHub Enterprise Server instance, 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.

Alterar a mensagem do commit enviado mais recentemente

  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

Alterar a mensagem das mensagens mais antigas ou múltiplas do commit

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. Quando estiver pronto para fazer push das suas alterações para o GitHub, use o comando push --force para fazer push forçado sobre o commit antigo.

    $ git push --force example-branch

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 um novo ID. No entanto, nesse caso, cada commit que segue o commit corrigido também obterá um novo ID, pois cada commit também contém o 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 Server. O commit antigo não fará parte de um clone subsequente. No entanto, ele ainda poderá ser armazenado no cache do GitHub Enterprise Server e ser acessado por meio do ID do commit. Você deve contatar o your site administrator com o ID do commit antigo para que ele seja apagado do repositório remoto.

Leia mais