Olá todos!
Suponham que em um repositório local haja diversos commits. Gostaria de saber se há alguma
maneira de editar a mensagem destes commits, pois gostaria de acrescentar alguns detalhes.
Além disso, os commits também foram enviados (push) a um repositório remoto. Haveria
alguma maneira de atualizar este repositório remoto com as novas mensagens?
Agradeço a atenção!
1 curtida
Antes de continuar, é importante dizer que o mais tranquilo seria deixar a mensagem como está.
Os commits no Git são imutáveis. Sempre que você mudar algo, na verdade você está criando outro commit. Portanto, você está reescrevendo o histórico do seu repositório.
Pior ainda é mudar o histórico quando você está trabalhando em equipe e outras pessoas estão efetuando outras mudanças.
Mas vamos lá!
Se for o último commit, você pode fazer:
git commit --amend -m "Nova mensagem"
Para mudar mensagens de commits anteriores ao último commit, você pode usar o git rebase -i
(modo interativo do rebase):
- Procure o hash do commit que você quer mudar como
git log
. Ex: f0b5417
- Execute o comando
git rebase -i f0b5417~1
(repare no ~1, que pega o commit anterior)
- Será aberto um editor de texto. Mude de
pick
para reward
o commit com a mensagem incorreta. Salve o arquivo e feche o editor.
- O editor de texto vai abrir de novo no commit que você colocou
reword
. Corrija a mensagem! Salve o arquivo e feche o editor.
Os commits teriam as mensagens modificadas. Mas ao tentar dar push
para o repositório remoto, irá dar erro…
Você precisará forçar a barra no push
para que o Git aceitat mudar o histórico do repositório remoto.
Antes de continuar, tome cuidado e fale para a sua equipe não comitar nada. Faça o pull
do repositório remoto e faça:
git push origin --force master
Mas lembrando: É MELHOR NÃO FAZER!
1 curtida