> 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-7.md).

# Solução Exercício 7

### 👣 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
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.

#### 3) No VS Code, crie um novo arquivo chamado `rascunho.txt`

#### 4) No VS Code, escreva no arquivo `rascunho.txt` uma frase qualquer, por exemplo:

```
Estou na página 159 do livro O Conto da Aia, de Margaret Atwood
```

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

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

```bash
git status
```

O resultado será algo como:

```bash
On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	rascunho.txt

nothing added to commit but untracked files present (use "git add" to track)
```

Perceba que o arquivo rascunho.txt está como *Untracked*.

#### 7) No VS Code, crie um novo arquivo chamado `.gitignore`

#### 8) No VS Code, adicione uma linha ao  `.gitignore` contendo o nome do arquivo que deverá ser ignorado, neste caso:

```
rascunho.txt
```

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

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

```bash
git status
```

O resultado será algo como:

```bash
On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.gitignore

nothing added to commit but untracked files present (use "git add" to track)
```

Perceba que agora o arquivo `rascunho.txt` não aparece mais, uma vez que está ignorado. Apenas o arquivo `.gitignore` está presente como *Untracked*.

#### 11) No terminal, veja as diferenças entre o arquivo salvo e o repositório

```bash
git diff
```

O resultado deve ser vazio, uma vez que o arquivo acabou se tornar rastreado.

Aperte `q` para sair.

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

```bash
git add .gitignore
```

#### 13) 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)
	new file:   .gitignore
```

#### 14) Veja 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/.gitignore b/.gitignore
new file mode 100644
index 0000000..fc9178e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+rascunho.txt
```

Aperte `q` para sair.

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

```bash
git commit -m "Adiciona .gitignore"
```

O resultado será algo como:

```bash
[main d029ee1] Adiciona .gitignore
 1 file changed, 1 insertion(+)
 create mode 100644 .gitignore
```

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

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

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

Você verá algo como:

```bash
d029ee1 (HEAD -> main) Adiciona .gitignore
1f605f7 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.

***

### 🧠 Análise

Durante esse exercício, você aprendeu como evitar que arquivos desnecessários — como anotações temporárias ou arquivos pessoais — sejam adicionados ao controle de versão. O arquivo `rascunho.txt` foi um exemplo prático de algo que não precisa (e nem deve) ser versionado.

Ao criar o arquivo `.gitignore` e listar `rascunho.txt` nele, o Git passou a ignorar esse arquivo completamente. Isso significa que ele não aparecerá mais entre os arquivos não rastreados, nem poderá ser acidentalmente incluído em um commit.

O comando `git status` mostrou na prática essa mudança de comportamento. Antes, o `rascunho.txt` era exibido como "untracked", mas depois de ser incluído no `.gitignore`, desapareceu da lista de arquivos pendentes — exatamente o que queremos em casos assim.

Além disso, você adicionou o próprio `.gitignore` ao controle de versão, garantindo que a decisão de ignorar certos arquivos fique registrada no histórico e possa ser reutilizada futuramente, caso esse repositório venha a ser compartilhado ou versionado remotamente mais tarde.

***

:books: Muito bem! Agora você sabe como instruir o Git a *ignorar arquivos locais* que não devem ser versionados, como anotações temporárias ou rascunhos.\
Mesmo trabalhando só no seu computador, essa prática ajuda a manter o projeto mais limpo, com o controle de versão focado apenas nos arquivos que realmente importam. Essa é uma etapa pequena, mas importante, para escrever um histórico de projeto mais claro, objetivo e sem ruídos.


---

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