> For the complete documentation index, see [llms.txt](https://cumbucadev.gitbook.io/github-essentials/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cumbucadev.gitbook.io/github-essentials/dia-4/sua-vez/solucao-exercicio-6.md).

# Solução Exercício 6

### 👣 Passo a Passo

#### 1) Antes de fazer qualquer alteração, abra o terminal na pasta \`lista-de-leituras\` e verifique o estado do repositório através do comando:

```bash
git status
```

O resultado deve indicar que você está no branch main e que não há alterações pendentes:

```
On branch main
nothing to commit, working tree clean
```

#### &#x20;2) Em seguida, verifique o histórico de commits do repositório através do comando:

```bash
git log --oneline
```

Você verá algo como:

```bash
9cb39a8 (HEAD -> main) Revert "Adiciona It: a Coisa à lidos"
344ccda Adiciona It: a Coisa à lidos
b3cdb1e Mescla branch dom-quixote
716c895 Adiciona O Senhor dos Anéis à lidos
a5a2898 (dom-quixote) Adiciona Dom Quixote à lidos
c038697 (o-mundo-de-sofia) Adiciona O Mundo de Sofia à lidos
d644703 Adiciona título à lista de livros lidos
3132644 Adiciona arquivo lidos.txt
```

Use a tecla `↓` para rolar para baixo e `↑` para rolar para cima, caso o conteúdo não caiba todo na tela.

Aperte a tecla `q` para sair.

#### 3) No VS Code, abra o arquivo `lidos.txt` e adicione uma nova linha com o título de um livro que você já leu, mas com o nome escrito de forma incorreta, como por exemplo:

```
Capitães de Areia
```

Ao invés do título correto: Capitães d<mark style="color:green;">**a**</mark> Areia.

O conteúdo do arquivo deve estar semelhante à:

```
Dom Casmurro
O Ateneu
O Mundo de Sofia
O Senhor dos Anéis
Dom Quixote
Capitães de Areia
```

#### 4) No VS Code, salve o arquivo (`Ctrl+S` ou `Cmd+S` no macOS)

#### 5) No terminal, verifique novamente o status e observe o que foi alterado:

```bash
git status
```

O resultado será algo como:

```bash
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   lidos.txt

no changes added to commit (use "git add" and/or "git commit -a")
```

#### 6) Observe as diferenças entre o arquivo salvo e o repositório

```bash
git diff
```

O resultado será algo como:

```bash
diff --git a/lidos.txt b/lidos.txt
index 6df90e4..f862f57 100644
--- a/lidos.txt
+++ b/lidos.txt
@@ -3,3 +3,4 @@ O Ateneu
 O Mundo de Sofia
 O Senhor dos Anéis
 Dom Quixote
+Capitães de Areia
```

Aperte `q` para sair.

#### 7) Adicione o arquivo ao staging:

```bash
git add lidos.txt
```

#### 8) Verifique novamente o status do repositório:

```bash
git status
```

O resultado será algo como:

```bash
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   lidos.txt
```

#### 9) Observe agora as diferenças que estão no staging (o que será incluído no commit):

```bash
git diff --staged
```

O resultado será algo como:

```bash
diff --git a/lidos.txt b/lidos.txt
index 6df90e4..f862f57 100644
--- a/lidos.txt
+++ b/lidos.txt
@@ -3,3 +3,4 @@ O Ateneu
 O Mundo de Sofia
 O Senhor dos Anéis
 Dom Quixote
+Capitães de Areia
```

Aperte `q` para sair.

#### 10) Faça o commit com a mensagem:

```bash
git commit -m "Adiciona Capitães de Areia à lidos"
```

O resultado será algo como:

```bash
[main 86e4794] Adiciona Capitães de Areia à lidos
 1 file changed, 1 insertion(+)
```

#### 11) Verifique novamente o status do repositório:

```bash
git status
```

O status deve indicar que não há alterações pendentes:

```bash
On branch main
nothing to commit, working tree clean
```

**12) Em seguida, verifique o histórico de commits do repositório através do comando:**

```bash
git log --oneline
```

Você verá algo como:

```bash
86e4794 (HEAD -> main) Adiciona Capitães de Areia à lidos
9cb39a8 Revert "Adiciona It: a Coisa à lidos"
344ccda Adiciona It: a Coisa à lidos
b3cdb1e Mescla branch dom-quixote
716c895 Adiciona O Senhor dos Anéis à lidos
a5a2898 (dom-quixote) Adiciona Dom Quixote à lidos
c038697 (o-mundo-de-sofia) Adiciona O Mundo de Sofia à lidos
d644703 Adiciona título à lista de livros lidos
3132644 Adiciona arquivo lidos.txt
```

Analisando o log, então, você percebe que o título do livro está incorreto. Portanto, para resolver o problema, uma solução é modificar o commit anterior.

Aperte a tecla `q` para sair.

#### 13) No VS Code, edite o arquivo `lidos.txt` corrigindo o título do livro recém adicionado de maneira incorreta, por exemplo:

```
Capitães da Areia
```

O conteúdo do arquivo deve estar semelhante à:

```
Dom Casmurro
O Ateneu
O Mundo de Sofia
O Senhor dos Anéis
Dom Quixote
Capitães da Areia
```

#### 14) No VS Code, salve o arquivo (`Ctrl+S` ou `Cmd+S` no macOS)

#### 15) No terminal, verifique novamente o status e observe o que foi alterado:

```bash
git status
```

O resultado será algo como:

```bash
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   lidos.txt

no changes added to commit (use "git add" and/or "git commit -a")
```

#### 16) Observe as diferenças entre o arquivo salvo e o repositório

```bash
git diff
```

O resultado será algo como:

```bash
diff --git a/lidos.txt b/lidos.txt
index f862f57..144fcaf 100644
--- a/lidos.txt
+++ b/lidos.txt
@@ -3,4 +3,4 @@ O Ateneu
 O Mundo de Sofia
 O Senhor dos Anéis
 Dom Quixote
-Capitães de Areia
+Capitães da Areia
```

Aperte `q` para sair.

#### 17) Adicione o arquivo ao staging:

```bash
git add lidos.txt
```

#### 18) Verifique novamente o status do repositório:

```bash
git status
```

O resultado será algo como:

```bash
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   lidos.txt
```

#### 19) Observe agora as diferenças que estão no staging (o que será incluído no commit):

```bash
git diff --staged
```

O resultado será algo como:

```bash
diff --git a/lidos.txt b/lidos.txt
index f862f57..144fcaf 100644
--- a/lidos.txt
+++ b/lidos.txt
@@ -3,4 +3,4 @@ O Ateneu
 O Mundo de Sofia
 O Senhor dos Anéis
 Dom Quixote
-Capitães de Areia
+Capitães da Areia
```

Aperte `q` para sair.

#### 20) Modifique o commit anterior incluindo a nova modificação e a nova mensagem, com o comando:

```bash
git commit --amend -m "Adiciona Capitães da Areia à lidos"
```

O resultado será algo como:

```bash
[main 1f605f7] Adiciona Capitães da Areia à lidos
 Date: Wed Jul 23 14:35:27 2025 -0300
 1 file changed, 1 insertion(+)
```

#### 21) Verifique novamente o status do repositório:

```bash
git status
```

O status deve indicar que não há alterações pendentes:

```bash
On branch main
nothing to commit, working tree clean
```

**22) Em seguida, verifique o histórico de commits do repositório através do comando:**

```bash
git log --oneline
```

Você verá algo como:

```bash
1f605f7 (HEAD -> main) Adiciona Capitães da Areia à lidos
9cb39a8 Revert "Adiciona It: a Coisa à lidos"
344ccda Adiciona It: a Coisa à lidos
b3cdb1e Mescla branch dom-quixote
716c895 Adiciona O Senhor dos Anéis à lidos
a5a2898 (dom-quixote) Adiciona Dom Quixote à lidos
c038697 (o-mundo-de-sofia) Adiciona O Mundo de Sofia à lidos
d644703 Adiciona título à lista de livros lidos
3132644 Adiciona arquivo lidos.txt
```

Use a tecla `↓` para rolar para baixo e `↑` para rolar para cima, caso o conteúdo não caiba todo na tela.

Aperte a tecla `q` para sair.

***

#### ✨ Dica extra

Se quiser ver os detalhes exatos do commit no final, execute:

```bash
git show <hash-do-commit>
```

Isso mostra o conteúdo do commit que você desfez.

Neste caso:

```bash
git show 1f605f7
```

O resultado será algo como:

```bash
commit 1f605f78f7e526c4e37f1dd943070f77a9ef9ce6 (HEAD -> main)
Author: Seu Nome <seu@email.com>
Date:   Wed Jul 23 14:35:27 2025 -0300

    Adiciona Capitães da Areia à lidos

diff --git a/lidos.txt b/lidos.txt
index 6df90e4..144fcaf 100644
--- a/lidos.txt
+++ b/lidos.txt
@@ -3,3 +3,4 @@ O Ateneu
 O Mundo de Sofia
 O Senhor dos Anéis
 Dom Quixote
+Capitães da Areia
```

Use a tecla `↓` para rolar para baixo e `↑` para rolar para cima, caso o conteúdo não caiba todo na tela.

Aperte a tecla `q` para sair.

{% hint style="success" %}
💡 **Dica da dica!**\
Uma outra forma de ver os detalhes do último commit é usando o comando `git show HEAD`.

Isso funciona porque `HEAD` é um atalho que aponta para o commit mais recente do branch atual.

Ou seja, neste caso, `git show 1f605f7` e `git show HEAD` vão mostrar exatamente a mesma coisa — a diferença é que, com `HEAD`, você não precisa copiar o identificador do commit.
{% endhint %}

***

:books: Pronto! Você aprendeu a usar `git commit --amend` para corrigir um commit logo após tê-lo criado. Agora sabe como incluir alterações esquecidas sem precisar criar um novo commit, mantendo o histórico limpo e organizado!


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cumbucadev.gitbook.io/github-essentials/dia-4/sua-vez/solucao-exercicio-6.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
