Curso
Ao trabalhar com o Git, manter o repositório limpo e organizado não é apenas uma prática recomendada, mas é essencial para uma colaboração tranquila e um controle de versão eficiente. É aí que entra o .gitignore. Esse prático arquivo informa ao Git quais arquivos você deve ignorar, evitando a desordem desnecessária e mantendo seus commits focados no que realmente importa.
Sem o .gitignore, seu repositório pode se encher rapidamente de arquivos temporários, logs e outros itens que não pertencem ao controle de versão. Pior ainda, você pode acidentalmente compartilhar informações confidenciais.
Neste tutorial, você aprenderá a criar e usar um arquivo .gitignore para manter seu projeto organizado, evitar armadilhas comuns e trabalhar com mais eficiência com o Git. Vamos mergulhar de cabeça!
O que é um arquivo .gitignore?
Um arquivo .gitignore é um arquivo de configuração usado no Git para instruir o sistema de controle de versão sobre quais arquivos ou diretórios devem ser ignorados quando as alterações são preparadas ou confirmadas.
Ele evita que arquivos desnecessários - como arquivos temporários, gerados pelo sistema ou relacionados à compilação - atrapalhem o repositório. Ao manter o repositório limpo, você facilita a colaboração e garante que apenas os arquivos essenciais sejam programados.
O arquivo .gitignore é um arquivo de texto simples colocado no diretório raiz do seu repositório Git. Ele contém padrões que informam ao Git quais arquivos ou diretórios você deve ignorar. Esses padrões podem ser personalizados para atender às necessidades do seu projeto, ajudando você a manter um repositório bem organizado.
Você é novo no Git e no GitHub? Obtenha uma introdução amigável para iniciantes ao controle de versão com este tutorial do GitHub e do Git.
Aqui estão algumas categorias comuns de arquivos e diretórios que você deve considerar ignorar:
- Crie artefatos: Arquivos gerados durante o processo de compilação que podem ser recriados a partir do código-fonte, como:
dist/build/(resultados de construção de front-end e back-end)target/(Java e outras compilações de linguagem compilada)- Dependências: Os sistemas de gerenciamento de pacotes criam diretórios para as bibliotecas instaladas, que não devem ser programadas:
node_modules/(Node.js)vendor/(PHP, Composer).venv/Você pode usar o sitevenv/(ambientes virtuais Python)- Arquivos específicos do sistema: Esses arquivos são gerados automaticamente pelo sistema operacional e não contribuem para o projeto:
.DS_Store(macOS)Thumbs.db(Windows)- Arquivos de configuração do IDE: Cada desenvolvedor pode usar um ambiente de desenvolvimento diferente, portanto, suas configurações pessoais não devem ser incluídas no controle de versão:
.vscode/(Código VS).idea/(IDEs da JetBrains).project,.settings/(Eclipse)- Registros e arquivos temporários: Os registros, caches e arquivos temporários devem ser ignorados para evitar desordem desnecessária:
*.log,npm-debug.log*,yarn-debug.log*,yarn-error.log*(Registros de várias ferramentas)*.tmp,*.bak(arquivos temporários e de backup).mypy_cache/,__pycache__/(caches do Python).ipynb_checkpoints/(Pontos de verificação do Jupyter Notebook)- Ambiente e arquivos secretos: As credenciais confidenciais e as configurações específicas do ambiente nunca devem ser confirmadas:
.env,.env.local,.env.development,.env.productionsecrets.json,config.json(arquivos de configuração confidenciais)- Banco de dados e arquivos de armazenamento: Eles são gerados localmente e não devem ser incluídos no controle de versão:
*.sqlite,*.sqlite3,*.db(arquivos de banco de dados SQLite)dump.rdb(despejo do banco de dados Redis)- CI/CD e arquivos de cobertura: Os relatórios de cobertura de teste e outros artefatos de CI/CD devem ser ignorados:
coverage/,*.lcov(Relatórios de cobertura de código).tox/,.pytest_cache/(arquivos de teste do Python)
Você precisa instalar o Git? Siga nosso guia passo a passoe neste tutorial de instalação do Git para que você possa configurá-lo rapidamente.
Aprenda hoje os fundamentos do Git
Sintaxe de .gitignore
Conforme mencionado, os arquivos .gitignore contêm padrões que são comparados com os nomes de arquivos no seu repositório para determinar se eles devem ou não ser ignorados.
Sintaxe básica
Em sua essência, o arquivo .gitignore consiste em linhas, cada uma representando um padrão a ser ignorado. Os padrões podem corresponder:
- Arquivos específicos
- Tipos de arquivos
- Diretórios
O arquivo também suporta comentários, que podem ser adicionados iniciando uma linha com #, e linhas em branco para melhorar a legibilidade.
Aqui está uma visão geral da estrutura básica:
- Ignorar um arquivo específico: Você pode listar o nome do arquivo diretamente para ignorá-lo.
secrets.txt
- Ignorar um diretório inteiro: Ao adicionar um
/no final do nome do diretório, você pode ignorar tudo o que estiver dentro desse diretório.
logs/
- Ignorar todos os arquivos de um tipo específico: Os curingas (
*) podem ser usados para ignorar todos os arquivos com uma extensão específica.
*.py
- Negação: Você pode usar
!para negar um padrão e rastrear explicitamente determinados arquivos ou diretórios que, de outra forma, seriam ignorados.
*.txt # Ignores all .txt files
!readme.txt # Except for readme.txt
Como criar e usar um arquivo .gitignore
Criar e usar o site .gitignore é bastante simples. Nesta seção, examinarei as etapas.
Criando um arquivo .gitignore
Etapa 1: Navegue até a raiz do seu repositório. O arquivo .gitignore é normalmente colocado no diretório raiz de um projeto Git. Abra o terminal ou a linha de comando e navegue até o diretório raiz do seu repositório Git:
cd /path/to/your/repo
Etapa 2: Crie o arquivo .gitignore. Uma vez no diretório raiz, crie o arquivo .gitignore usando qualquer editor de texto ou executando um comando no terminal, como, por exemplo, " ":
touch .gitignore
Etapa 3: Adicione padrões ao arquivo. Abra o arquivo .gitignore em um editor de texto e adicione os padrões necessários para ignorar arquivos ou diretórios. Cada linha representa um padrão diferente.
Aqui está um exemplo de arquivo .gitignore comumente usado em um projeto básico:
# Ignore node_modules and dependency directories
node_modules/
vendor/
# Ignore build artifacts
dist/
build/
*.log
# Ignore system-generated files
.DS_Store
Thumbs.db
# Ignore environment and secret files
.env
config.json
Quando você tiver adicionado os padrões necessários, salve o arquivo. Agora, o Git ignorará automaticamente esses arquivos ao preparar ou fazer o commit das alterações.
Etapa 4: Faça o commit do arquivo no repositório. É importante que você envie o arquivo .gitignore para o repositório para que todos os colaboradores usem as mesmas regras de ignorar. Isso garante a consistência em todo o projeto para todos os envolvidos.
git add .gitignore
git commit -m "Add .gitignore file"
git push
Depois que o arquivo .gitignore for confirmado, você estabelecerá regras de ignorar compartilhadas para toda a equipe.
Você quer dominar o push e o pull no Git? Saiba como sincronizar seu trabalho com repositórios remotose neste tutorial de push e pull do Git.
Práticas recomendadas para usar o .gitignore
Embora a criação de um arquivo .gitignore seja uma parte simples da manutenção de um repositório Git limpo, várias práticas recomendadas devem ser seguidas para garantir que o arquivo seja gerenciado de forma eficaz ao longo do tempo.
Use um .gitignore global
Para os desenvolvedores que trabalham em vários projetos, há arquivos específicos que você pode querer excluir de cada repositório, independentemente do tipo de projeto.
Em vez de adicioná-los ao arquivo .gitignore de cada projeto, você pode configurar um .gitignore global que se aplique a todos os repositórios do seu sistema.
Para configurar um arquivo global .gitignore:
- Crie um arquivo
.gitignore_global:
touch ~/.gitignore_global
- Adicione padrões para arquivos que você deseja ignorar globalmente, como:
.DS_Store
*.log
/.vscode/
/.idea/
- Defina o Git para usar o site global
.gitignore:
git config --global core.excludesfile ~/.gitignore_global
Aproveite os modelos existentes
Em vez de criar um arquivo .gitignore do zero para cada novo projeto, você pode aproveitar os modelos .gitignore pré-configurados para linguagens, estruturas ou ambientes específicos.
Um dos melhores recursos para esses modelosé o repositório .gitignore oficial do GitHub, onde você pode encontrar arquivos .gitignore adaptados a centenas de linguagens de programação e estruturas.
Revisar o .gitignore regularmente
À medida que os projetos evoluem, pode ser necessário incluir novos arquivos e diretórios no arquivo .gitignore. É importante revisar e atualizar periodicamente seu arquivo para refletir o estado atual de seus projetos.
Alguns cenários em que você pode precisar atualizar o arquivo .gitignore incluem:
- Adotar novas ferramentas ou bibliotecas que geram arquivos adicionais (por exemplo, mudar para um novo sistema de compilação).
- Refatoração ou reorganização de diretórios, o que pode resultar em novos arquivos que devem ser excluídos.
- Remoção de arquivos ou diretórios obsoletos que não fazem mais parte do projeto.
Solução de problemas com o .gitignore
Mesmo depois de configurar um arquivo .gitignore, você pode se deparar com cenários em que arquivos específicos estão sendo rastreados ou em que os padrões não parecem funcionar como esperado. Esta seção abordará duas áreas comuns de solução de problemas e como resolvê-las.
Programa de arquivos já confirmados
O arquivo .gitignore não se aplica retroativamente a arquivos já confirmados.
Se você adicionar um padrão a .gitignore depois que determinados arquivos já tiverem sido confirmados, o Git continuará a rastreá-los, mesmo que correspondam ao padrão no arquivo .gitignore.
Para parar de programar arquivos que já foram confirmados, siga estas etapas:
- Remova os arquivos do programa Git: Use o comando
git rmpara removê-los do repositório e mantê-los em seu diretório de trabalho.
git rm --cached <file_or_directory_name>
- Confirmar as alterações: Depois de remover os arquivos do rastreamento do Git, faça o commit das alterações para garantir que os arquivos não façam mais parte do histórico de controle de versão.
git commit -m "Stop tracking ignored files"
- Envie as alterações para o repositório remoto: Por fim, envie as alterações para o repositório remoto para garantir que os arquivos não sejam mais programados.
git push
Depois de executar essas etapas, o Git deixará de rastrear os arquivos. O arquivo confirmado ainda estará no seu diretório de trabalho, mas será ignorado por futuros commits com base nos seus padrões .gitignore.
Verifique se os padrões estão funcionando
Às vezes, você pode notar que arquivos específicos que você esperava que fossem ignorados ainda aparecem no status do Git ou estão sendo programados.
Siga estas etapas para garantir que os padrões do .gitignore estejam funcionando corretamente:
- Verifique o status dos seus arquivos: Use o comando
git statuspara ver quais arquivos estão sendo monitorados pelo Git. Isso ajudará você a verificar se os arquivos ignorados ainda estão listados.
git status
- Verifique se o padrão está correto: Verifique novamente a sintaxe dos padrões do site
.gitignorepara garantir que eles estejam formatados corretamente. Por exemplo: - Certifique-se de que você use o caminho correto do diretório (relativo à raiz do repositório).
- Adicione um
/para direcionar diretórios específicos e evitar que você rastreie todos os arquivos com nomes semelhantes.
- Atualize o cache: Se você atualizou recentemente o arquivo
.gitignoree as alterações não estão sendo aplicadas, o Git pode estar mantendo o cache anterior. Para atualizar o cache, execute o seguinte comando:
git rm -r --cached .
git add .
git commit -m "Refresh .gitignore"
- Verifique se há exceções: Às vezes, um padrão específico em
.gitignorepode ser substituído por um padrão mais específico em outra parte do arquivo. Revise suas regras para garantir que não haja padrões conflitantes.
Você está procurando uma referência rápida do Git? Mantenha os comandos essenciais ao alcance de seus dedoscom esta folha de dicas do Git.
Conclusão
Um arquivo .gitignore pode parecer pequeno, mas ele desempenha um papel importante para manter o repositório Git limpo e gerenciável. Ao ignorar arquivos desnecessários - como dependências, artefatos de compilação e arquivos gerados pelo sistema - você garante que seu projeto permaneça organizado e livre de desordem.
Neste tutorial, você aprendeu a criar um arquivo .gitignore, adicionar padrões e aplicar práticas recomendadas para manter seu repositório eficiente. Com essas habilidades, você evitará dores de cabeça com o controle de versão e tornará a colaboração mais fácil para todos na sua equipe.
Se você deseja aprofundar suas habilidades no Git, confira Git Fundamentals para obter um caminho de aprendizagem estruturado. Você também pode explorar cursos práticos, como Foundations of Git e Introduction to GitHub Concepts, para desenvolver uma sólida compreensão do controle de versão e dos fluxos de trabalho de colaboração!
Aprenda hoje os fundamentos do Git
Perguntas frequentes
O .gitignore remove arquivos que já são programados pelo Git?
Não, o .gitignore só impede que novos arquivos sejam programados. Se um arquivo já estiver no controle de versão, adicioná-lo a .gitignore não o removerá. Para parar de rastrear um arquivo que já foi confirmado, você precisa usar:
git rm --cached filename
Em seguida, confirme as alterações.
Posso ter vários arquivos .gitignore em um projeto?
Sim! Você pode colocar os arquivos .gitignore em diferentes diretórios do seu projeto. Cada um deles se aplica somente aos arquivos em seu diretório e subdiretórios.
Como faço para ignorar todos os arquivos de um determinado tipo?
Você pode usar curingas. Por exemplo, para ignorar todos os arquivos .log:
*.log
Isso excluirá todos os arquivos com a extensão .log.
Você pode ignorar um arquivo específico, mas ainda assim rastreá-lo para meu próprio trabalho?
Sim, mas você deve garantir manualmente que ele não seja confirmado. Uma maneira de fazer isso é usar git update-index --assume-unchanged filename, uma solução temporária. Uma abordagem melhor é usar um arquivo global .gitignore (consulte a próxima pergunta).
O que é um arquivo .gitignore global e como posso configurá-lo?
Um .gitignore global é usado para ignorar arquivos em todos os repositórios do seu computador. Isso é útil para arquivos específicos do sistema, como .DS_Store ou Thumbs.db. Para criar e configurar um site global .gitignore:
git config --global core.excludesfile ~/.gitignore_global
Em seguida, adicione padrões ao site ~/.gitignore_global conforme necessário.
Por que meu arquivo .gitignore não está funcionando?
Se o .gitignore não estiver ignorando um arquivo, verifique se há esses problemas comuns:
- O arquivo já está programado - você precisa removê-lo usando
git rm --cached filename. - O padrão
.gitignorepode estar incorreto - verifique novamente a sintaxe. - Há uma regra conflitante - o Git aplica a última regra correspondente, portanto, a ordem é importante.
Posso ignorar um diretório, mas manter um arquivo específico dentro dele?
Sim! Use uma regra de exclusão. Por exemplo, para ignorar tudo em uma pasta, exceto keepme.txt:
folder_name/*
!folder_name/keepme.txtO que acontece se dois membros da equipe tiverem arquivos .gitignore diferentes?
Se o .gitignore for confirmado no repositório, todos os membros da equipe seguirão as mesmas regras. No entanto, se uma pessoa modificar o site .gitignore localmente, mas não fizer o commit da alteração, ela poderá ter arquivos ignorados diferentes. É melhor manter o .gitignore versionado e acordado pela equipe.
Como posso verificar quais arquivos estão sendo ignorados?
Execute o seguinte comando para ver o que .gitignore está excluindo:
git status --ignored
Ou, para obter uma lista mais detalhada:
git check-ignore -v filename
Posso desfazer o fato de ignorar um arquivo no .gitignore?
Sim! Remova o arquivo de .gitignore e, em seguida, rastreie-o novamente usando o programa:
git add filename
Em seguida, confirme as alterações.

