Git Commit --amend
Última atualização
git commit --amend substitui o commit mais recente por um novo, permitindo corrigir sua mensagem ou adicionar arquivos que você esqueceu de preparar. Ele não adiciona um segundo commit; reescreve o último. Como isso muda o hash do commit, só emende commits que você ainda não enviou.
Experimente estes comandos no terminal playground: um shell real no seu navegador, sem nada para instalar.
Sintaxe
| Command | What it does |
|---|---|
git commit --amend | Edita o último commit e sua mensagem |
git commit --amend -m "new message" | Altera a mensagem do último commit em linha |
git commit --amend --no-edit | Adiciona os arquivos preparados e mantém a mesma mensagem |
Casos comuns
| Goal | Command |
|---|---|
| Corrigir um erro de digitação na última mensagem | git commit --amend -m "fixed message" |
| Adicionar um arquivo esquecido ao último commit | git add file e depois git commit --amend --no-edit |
| Emendar um commit já enviado (cuidado) | emende e depois git push --force-with-lease |
Perguntas frequentes sobre git commit --amend
Como altero a mensagem do meu último commit?
Execute
git commit --amend -m "new message" para substituí-la em linha, ou git commit --amend para abrir seu editor e reescrevê-la ali. Isso reescreve o último commit com a nova mensagem; não faça isso em um commit que você já enviou, a menos que esteja preparado para forçar o push.Como adiciono um arquivo esquecido ao último commit?
Prepare o arquivo com
git add <file> e depois execute git commit --amend --no-edit. A opção --no-edit mantém a mensagem de commit existente e apenas incorpora as alterações recém-preparadas ao commit anterior.O git commit --amend cria um novo commit?
Não: ele substitui o último commit em vez de adicionar um. O resultado parece um único commit, mas tecnicamente é um novo commit com um novo hash que toma o lugar do antigo. É por isso que emendar um histórico compartilhado exige um force push.
É seguro emendar um commit já enviado?
Apenas com cuidado. Emendar reescreve o commit, então após enviá-lo você precisaria de
git push --force-with-lease, o que pode atrapalhar quem já baixou o original. Em uma branch compartilhada, prefira um novo commit ou git revert em vez de emendar.Posso praticar isso online?
Sim. Abra o terminal playground para executar
git commit --amend em um shell real no seu navegador, sem nada para instalar. O curso interativo e gratuito de Git da Coddy também aborda como corrigir commits passo a passo.