# Como modificar as mensagens dos commits antigos?

**URL:** <https://forum.casadocodigo.com.br/t/como-modificar-as-mensagens-dos-commits-antigos/208>\
**Category:** Livros\
**Tags:** git-github\
**Created:** [Maio 30, 2016, 4:33pm UTC](https://forum.casadocodigo.com.br/t/como-modificar-as-mensagens-dos-commits-antigos/208 "2016-05-30T16:33:52Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![fabriciofx](https://avatars.discourse-cdn.com/v4/letter/f/ac8455/32.png) [@fabriciofx](https://forum.casadocodigo.com.br/u/fabriciofx)\
**Post date:** [Maio 30, 2016, 4:33pm UTC](https://forum.casadocodigo.com.br/t/como-modificar-as-mensagens-dos-commits-antigos/208/1 "2016-05-30T16:33:52Z")

</div>

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!

---

<div class="post-metadata">

**Author:** ![alexandre.aquiles](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/alexandre.aquiles/32/14791_2.png) [@alexandre.aquiles](https://forum.casadocodigo.com.br/u/alexandre.aquiles)\
**Post date:** [Julho 12, 2016, 7:16pm UTC](https://forum.casadocodigo.com.br/t/como-modificar-as-mensagens-dos-commits-antigos/208/2 "2016-07-12T19:16:16Z")

</div>

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:

```auto
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):

1. Procure o hash do commit que você quer mudar como `git log`. Ex: `f0b5417`
2. Execute o comando `git rebase -i f0b5417~1` (repare no ~1, que pega o commit anterior)
3. Será aberto um editor de texto. Mude de `pick` para `reward` o commit com a mensagem incorreta. Salve o arquivo e feche o editor.
4. 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:

```auto
git push origin --force master

```

Mas lembrando: **É MELHOR NÃO FAZER**!
