DEV Community

ダニエリ for WoMakersCode

Posted on • Edited on

38 2 1

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

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.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (2)

Collapse
 
guilhermesoares009 profile image
Guilherme Soares Sousa Silva

boa, salvou!

Collapse
 
kian182 profile image
Kevin Ruiz Vargas

Excellent tutorial! Thank you!

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs