[Tutorial Git] git amend: Corrigindo o último commit

ダニエリ - Mar 7 '20 - - Dev Community

Mensagem de commit errada

Para corrigir um commit usamos o comando



$ git commit --amend -m 'mensagem de correção aqui'


Enter fullscreen mode Exit fullscreen mode

ou



$ git commit -m 'mensagem de correção aqui' --amend


Enter fullscreen mode Exit fullscreen mode

Exemplo:

Vamos supor que adicionei dois arquivos com os seguintes commits:



$ git add index.html estilo.css
$ git commit -m 'adicionando arquivo html e css'


Enter fullscreen mode Exit fullscreen mode
  • $ indica que você deve usar o usuário comum para fazer essa operação.
  • add para adicionar arquivos ao index.
  • commit é quem vai levar os arquivos do index para o repositório git.
  • -m indica que você irá escrever uma mensagem para registrar o commit.
  • ' ' a mensagem vem entre aspas simples ou duplas.

E em seguida, adiciono mais outro, mas com o commit errado:



$ git add script.js
$ git commit -m 'script python'


Enter fullscreen mode Exit fullscreen mode

Como é possível constatar, escrevi errado o commit desse arquivo.

Antes de consertá-lo, vamos dar uma olhada nos commit feitos até agora:



$ git log


Enter fullscreen mode Exit fullscreen mode

verificando as chaves dos commits feitos

Perceba que cada um tem sua própria chave (a sequência de caracteres com letras e números ao lado da palavra commit).

Vamos modificar o último commit com o seguinte comando:



$ git commit --amend -m 'adicionando script js'


Enter fullscreen mode Exit fullscreen mode

Agora, vamos usar utilizar o comando git log para ver novamente os commits:

commit corrigido

Observe que a chave do nosso último commit é diferente da anterior (antes da correção).

Para entender melhor o que aconteceu, vamos usar o comando git reflog

registro reflog

Com ele podemos verificar o nosso commit errado e a sua correção.

No fluxo do git, temos:

fluxo do git mostrando commit amend

Arquivo esquecido

Outro problema que pode ocorrer, e que também é resolvido com o comando --amend, é de adicionar arquivos ao repositório, dar commit, mas ter faltado um arquivo que você queria que fizesse parte desse commit.

Exemplo:

esquecendo de adicionar um arquivo

No exemplo acima, esquecemos de adicionar o arquivo playstation.html.

Usando o comando git log, temos:

log de commits antes da correção

Fazendo a correção:

usando amend para inserir arquivo esquecido

Usando git log novamente:

log de commits após a correção da adição de arquivos

Pequenas alterações no arquivo

Caso você tenha acabado de fazer um commit, mas precisou fazer uma pequena alteração no arquivo logo em seguida, então digite:



$ git add <nome_do_arquivo>


Enter fullscreen mode Exit fullscreen mode
  • digite o nome do arquivo sem os sinais < >.

Para colocar as alterações no index e em seguida:



$ git commit --amend --no-edit


Enter fullscreen mode Exit fullscreen mode

Agora seu último commit contém a alteração do arquivo.

Atenção: não usar esse comando com commits que já foram enviados para o repositório remoto.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .