Existe uma maneira de editar uma mensagem de commit no github?

33

Existe uma maneira de editar uma mensagem de confirmação depois de confirmar e enviar para o github? Eu vejo que há um 'adicionar uma nota', bem como comentários in-line, mas nenhuma edição real de uma mensagem de confirmação. Há também 'emendar' em gitextentions, mas isso não edita a mensagem existente.

    
por Matthew Peters 09.05.2014 / 18:48

3 respostas

58

  1. git rebase -i <commit hash you want to change>^

    Isso abrirá seu editor padrão (geralmente vi ) com uma lista de commits e ações para cada um. Por padrão, a ação é pick .

  2. Para qualquer consolidação que você queira alterar a mensagem, altere pick para reword .

  3. Salve e saia (no vi: :wq ).

  4. Para cada commit, você terá um editor para editar a mensagem de commit. Mude como quiser, salve e saia.

    Quando terminar de editar todas as mensagens de confirmação, você retornará ao prompt de comando e terá uma nova árvore com as mensagens atualizadas.

  5. Agora você pode enviá-los para o github usando git push origin --force .

Se você só precisa consertar seu último commit, você pode substituir os passos 1-4 com git commit --amend .

    
por 10.05.2014 / 12:27
6

No Intellij Idea, você pode fazer isso com facilidade.

  1. Controle de versão aberta (histórico)
  2. Selecione a guia de log
  3. Selecione confirmar para alterar o comentário
  4. pressione F2 (Mac fn + F2) e atualize sua mensagem de confirmação
por 18.06.2018 / 11:49
1

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
    
por 09.08.2018 / 00:27

Tags