🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

Como usar o .gitignore: Gerenciando arquivos que você quer excluir do rastreamento

Nos artigos anteriores, aprendemos as operações básicas com o Git e o GitHub. No entanto, ao executar `git status` em um projeto real, você já se sentiu confuso ao ver aparecerem arquivos gerados automaticamente pelo sistema operacional (como o `.DS_Store` no Mac), informações confidenciais como senhas, ou uma grande quantidade de arquivos de dependências (como `node_modules`), e se perguntou: "Eu realmente preciso gerenciar tudo isso?"

Neste artigo, explicaremos em detalhes como usar o arquivo "`.gitignore`" para excluir intencionalmente do rastreamento os arquivos e pastas que não precisam, ou não deveriam, estar sob o controle do Git. Usando o `.gitignore` corretamente, você poderá manter seus repositórios limpos e gerenciar seus projetos de forma segura.


O que é .gitignore? Por que é necessário excluir arquivos?

`.gitignore`, como o nome sugere, é simplesmente um arquivo de texto onde se lista os arquivos e pastas que você quer que o Git "ignore". Ao colocar este arquivo no diretório raiz do seu projeto, o Git excluirá os arquivos que correspondem aos padrões escritos nele da visualização do `git status` e do alvo do `git add`.

Então, por que é necessário excluir arquivos? Existem três razões principais:


Sintaxe e regras básicas do .gitignore

A sintaxe do `.gitignore` é muito simples. Basta criar um arquivo chamado `.gitignore` na raiz do seu projeto (onde se encontra a pasta `.git`) e escrever os nomes dos arquivos ou pastas que quer excluir, um por linha.

Exemplo de sintaxe básica:

# Linhas que começam com '#' são tratadas como comentários

# Excluir especificando um nome de arquivo concreto
debug.log
config_secret.php

# Excluir um diretório inteiro (a barra final é opcional)
node_modules/
dist

# Excluir todos os arquivos com uma extensão específica
*.log
*.tmp

# Regra de exceção: Usar '!'
# Ignorar tudo o que há no diretório logs, mas incluir important.log no rastreamento
logs/
!logs/important.log

Você também pode usar curingas (`*`), o que permite uma configuração flexível. Pode gerar facilmente uma lista de arquivos que deveriam ser excluídos em qualquer projeto em sites como o gitignore.io, pelo que pode ser uma boa ideia utilizá-los.


Na prática! Passos para criar um `.gitignore` e ignorar arquivos

Agora, vamos criar um `.gitignore` na prática e confirmar que os arquivos desnecessários deixam de ser rastreados.

Passo 1: Crie o arquivo `.gitignore`

Primeiro, crie um arquivo `.gitignore` no diretório raiz do seu projeto. Como o nome do arquivo começa com um ponto, pode ser difícil criá-lo com um explorador de arquivos com GUI. A forma mais segura é executar o seguinte comando no terminal (ou Git Bash).

touch .gitignore

Passo 2: Escreva os arquivos e pastas que quer excluir

Abra o arquivo `.gitignore` que criou com um editor de texto e escreva os itens que se costumam excluir no desenvolvimento web.

# Arquivos do SO / Editor
.DS_Store
.vscode/

# Dependências
node_modules/

# Arquivos de log
*.log
npm-debug.log*

# Variáveis de ambiente
.env

Depois de editar o arquivo, não se esqueça de o guardar.

Passo 3: Faça commit do próprio `.gitignore`

Esta "regra de exclusão" em si é uma configuração importante que deve ser partilhada por todos os membros da equipe. Por isso, o próprio arquivo `.gitignore` deve ser incluído no controle de versões do Git e deve-se fazer commit dele.

git add .gitignore

git commit -m "Adicionar arquivo .gitignore"

Passo 4: Verifique que funciona

Vamos verificar se os arquivos são realmente ignorados. Crie um arquivo chamado `debug.log`, que incluímos na nossa lista de ignorados.

echo "Este é um registo de depuração." > debug.log

Agora, tente executar `git status`.

git status

Que tal? `debug.log` não deverá aparecer na lista de "Untracked files" e deverá ser completamente ignorado. Conseguiste!


Nota importante: O que fazer com os arquivos que já foram commitados?

Um erro comum em que os principiantes caem é o de "fazer commit de um arquivo importante e depois adicioná-lo à pressa a `.gitignore`". No entanto, `.gitignore` só tem efeito sobre os arquivos que nunca antes foram rastreados pelo Git.

Se quiser deixar de gerir com o Git um arquivo que já está a ser rastreado (por exemplo, `secret-key.php`), precisa de o remover da lista de seguimento do Git (o índice) com o seguinte comando.

git rm --cached [nome_do_arquivo]

Este comando é seguro, pois não elimina o arquivo em si do seu PC, mas apenas o "remove do seguimento do Git". Depois de o executar, não se esqueça de fazer commit desta alteração juntamente com as modificações do seu `.gitignore`.

git commit -m "Deixar de rastrear secret-key.php"