Editando a mensagem de confirmação do git no GitHub


173

Existe alguma maneira de editar online a mensagem de confirmação em GitHub.com após o envio?

Na linha de comando, pode-se fazer

git commit --amend -m "New commit message"

conforme sugerido corretamente em outra pergunta .

Tentando git pulle depois git pushfuncionou (sem que nenhum outro commit tenha interferido nesse meio tempo).

Mas isso pode ser feito através do GitHubsite?


Por favor, veja a resposta de @ DanGreen-Leipciger, mesmo que não seja a aceita.
RBT 12/01

Respostas:


101

Não, isso não é diretamente possível. O hash para cada confirmação do Git também é calculado com base na mensagem de confirmação. Quando você altera a mensagem de confirmação, altera o hash de confirmação. Se você deseja enviar esse commit por push, você deve forçar esse push (git push -f). Mas se alguém já retirou o seu commit antigo e iniciou um trabalho com base nesse commit, ele teria que refazer o trabalho dele no seu novo commit.


Eu também poderia fazer git pull e git push e funcionou. Mas, aparentemente, não há maneira online.
PNS

Ainda não é possível a partir de 5 de abril de 2016
bigT

E eu acho que não será de alta prioridade, pois você alteraria o histórico de consolidação de uma ramificação já publicada, o que nunca deve ser feito (exceto se você tiver 200% de certeza de que ninguém mais tem essa ramificação na máquina local).
dunni

Isso é apenas meia verdade. É verdade, mas apenas com suposições. A resposta seria melhor se fosse combinada com a de @DanGreen (abaixo). Não é "diretamente possível", e certamente vem com avisos (ou seja: "você nunca 'deve fazer isso ... [exceto quando tiver certeza de que deseja]") - mas simplesmente dizer que isso não é possível, quando tecnicamente possível, é uma resposta incompleta.
Bane

1
O OP perguntou se é possível fazê-lo online no site do Github. AFAIK isso ainda não é possível. Portanto, minha resposta é válida, e a resposta de Dan Green trata apenas da maneira de fazê-lo localmente, não no site do Githubs.
dunni 31/05

145

Instruções do GitHub para fazer isso:

  1. Na linha de comandos, navegue até o repositório que contém a confirmação que você deseja alterar.
  2. Tipo git commit --amend e pressione Enter.
  3. No seu editor de texto, edite a mensagem de confirmação e salve a confirmação.
  4. Use o git push --force example-branchcomando para forçar o push sobre a confirmação antiga.

Fonte: https://help.github.com/articles/changing-a-commit-message/


11
SEJA CUIDADOSO! A diferença entre usar <git commit --amend> & <Enter> e <git commit --amend -m "nova mensagem de confirmação"> é que, no primeiro caso, você está editando sua mensagem de confirmação em um editor de texto e no segundo, você a substitui pela "nova mensagem de confirmação". Se você pressionar o botão, isso substituirá a confirmação no seu controle remoto. Isso NÃO resolve o problema de que, se outras pessoas em sua equipe obtiveram o commit anterior, agora você tem históricos diferentes (incluindo commits diferentes) em máquinas diferentes. Se você sabe que ninguém conseguiu seu commit, isso é seguro. Leia a fonte Dan postou
TMin

7
git commit --amendsempre existiu. Além disso, você está ficando confuso entre o git (que é uma ferramenta de linha de comando de código aberto) e o Github (que é uma empresa que fornece uma hospedagem de código-fonte on-line).
precisa saber é o seguinte

1
O OP perguntou sobre o GitHub e, especificamente, sobre o envio da confirmação para seus servidores. Essas são as instruções do GitHub para fazer o que o OP perguntou.
Dan Green-Leipciger

3
@ DanGreen-Leipciger - sim, mas isso não é feito no próprio site, é feito usando a linha de comando. Eu acho que o PNS queria fazer isso de dentro da interface da web.
PhistucK

2
O OP perguntou como fazê-lo especificamente com o GitHub, e é como fazê-lo especificamente com o GitHub.
Dan Green-Leipciger

30

Você precisa git push -fassumir que ninguém puxou o outro commit antes. Cuidado, você está mudando a história.


3

Não, porque a mensagem de confirmação está relacionada ao SHA / hash de confirmação e, se a alterarmos, o SHA de confirmação também será alterado. O jeito que eu usei é criar um comentário sobre esse commit. Não consigo pensar de outra maneira.


2

Para usuários intellij: Se você deseja fazer alterações de maneira interativa para confirmações passadas, que não são enviadas por push , siga as etapas abaixo em Intellij :

  • Selecione Controle de Versão
  • Selecione Log
  • Clique com o botão direito do mouse no commit para o qual deseja alterar o comentário
  • Clique em reformular
  • Feito

Espero que ajude


0

Eu estava enfrentando o mesmo problema.

Veja no seu github um ramo específico e você conhecerá o ID de confirmação do primeiro commit nesse ramo. faça uma reformulação para isso:

git rebase -i

O editor será aberto. Faça um rastreamento de seus commits na interface do usuário do github e no editor aberto e altere as mensagens.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.