[Tutorial Git] git amend: Corrigindo o último commit
Tags: git, github, amend, braziliandevs
Published: 2020-03-07 17:00:58

## Mensagem de commit errada

Para corrigir um **commit** usamos o comando

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

ou 

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

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'
```

- **$** 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'
```

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
```

![verificando as chaves dos commits feitos](https://dev-to-uploads.s3.amazonaws.com/i/2td9opqu3sx7xzmbg0ku.png)

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'
```

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

![commit corrigido](https://dev-to-uploads.s3.amazonaws.com/i/yj1qivgypvx8acxtjfey.png)

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](https://dev-to-uploads.s3.amazonaws.com/i/oq2jelseto9qw34h9t5w.png)

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

No **fluxo** do git, temos:

![fluxo do git mostrando commit amend](https://dev-to-uploads.s3.amazonaws.com/i/uk5rp5ge3ysxbqu0u8ly.png)


## 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](https://dev-to-uploads.s3.amazonaws.com/i/kd1hmvv6bgyqdapgs4h7.gif)

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

Usando o comando **git log**, temos:

![log de commits antes da correção](https://dev-to-uploads.s3.amazonaws.com/i/5twk8u8hmtniqhm91imb.png)

Fazendo a correção:

![usando amend para inserir arquivo esquecido](https://dev-to-uploads.s3.amazonaws.com/i/m94qq3z9ux54y2jnj66x.gif)

Usando **git log** novamente:

![log de commits após a correção da adição de arquivos](https://dev-to-uploads.s3.amazonaws.com/i/etfat2i75krb8nku7qhp.png)

## 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>
```

- digite o nome do arquivo sem os sinais **< >**.

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

```
$ git commit --amend --no-edit
```

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.**