Skip to content
Fluxos de Trabalho5 min de leituraVerificado no Git 2.40+

Como ignorar pastas e diretórios no Git

Guia prático sobre regras de exclusão de pastas: barras finais, pastas relativas à raiz, subdiretórios aninhados e preservação de pastas vazias com .gitkeep.

1. A regra da barra final: build/ vs build

No Git, acrescentar uma barra inclinada no final (/) instrui o Git a verificar apenas diretórios e desconsiderar arquivos comuns com o mesmo nome:

gitignore
# Matches only directories named "build/" (e.g. /build/, /src/build/)
build/

# Matches BOTH a directory named "build" AND a file named "build"
build
Boa prática

Sempre utilize uma barra no final quando sua intenção for ignorar uma pasta. Isso evita ignorar scripts executáveis sem extensão por engano.

2. Pastas ancoradas na raiz vs correspondência recursiva

Por padrão, o nome de uma pasta sem barra inicial é avaliado em qualquer nível do seu repositório:

gitignore
# Matches "logs/" anywhere in the repository: /logs/, /apps/web/logs/, etc.
logs/

# Anchored: Matches "logs/" ONLY at the repository root
/logs/

3. Subpastas aninhadas e caracteres curinga

Se você precisa ignorar subpastas específicas sem descartar a pasta-mãe inteira, combine curingas glob com caminhos de diretório:

gitignore
# Ignore any folder named "temp" inside any "build" directory
build/**/temp/

# Ignore all subdirectories inside packages except package files
packages/*/dist/

4. Manter pastas vazias com .gitkeep

O Git rastreia arquivos, nunca pastas vazias sozinhas. Se você precisa versionar a estrutura de pastas vazias (ex.: uploads/ ou logs/), utilize a convenção .gitkeep:

gitignore
# 1. Ignore everything inside uploads/
uploads/*

# 2. But whitelist the .gitkeep file inside it
!uploads/.gitkeep

5. Reincluir subpastas com segurança

Quando uma pasta principal é ignorada, você não pode simplesmente reincluir uma subpasta com ponto de exclamação. É necessário descartar os itens internos:

gitignore
# Ignore everything inside config/
config/*

# Whitelist production folder and its contents
!config/production/
!config/production/**

Perguntas Frequentes

Respostas práticas para dúvidas comuns de desenvolvedores sobre regras de .gitignore, cache e configuração de repositórios.

Qual a diferença entre pasta e pasta/ no .gitignore?

'pasta/' casa exclusivamente diretórios. 'pasta' sem barra casa tanto diretórios quanto arquivos comuns que compartilhem o mesmo nome.

Como comitar uma pasta vazia no Git?

Crie um arquivo vazio chamado .gitkeep dentro da pasta, ignore os arquivos internos com 'pasta/*' e declare a exceção com '!pasta/.gitkeep'.

Como ignorar o conteúdo de uma pasta mas manter a pasta em si?

Use 'diretorio/*' em vez de 'diretorio/'. Isso descarta os arquivos internos sem fazer com que o Git pule a leitura da pasta.

← Ler guiasAbrir no gerador completo