Como manter um diretório vazio? .gitkeep ou .gitignore?

Nos fluxos normais de add e checkout, o Git preserva diretórios por meio dos arquivos neles. Escolha .gitkeep para um diretório inicialmente vazio ou .gitignore para ignorar conteúdo gerado depois.

1. Mantenha um marcador

Crie uploads e o arquivo vazio uploads/.gitkeep no editor; depois prepare esse arquivo específico:

git add -- uploads/.gitkeep

Confirme que uploads/.gitkeep aparece no índice. .gitkeep é uma convenção sem comportamento especial no Git; um README explicando o diretório também serve. Ele não ignora automaticamente arquivos futuros.

git ls-files -- uploads/

2. Mantenha o diretório e ignore o conteúdo

Como alternativa ao .gitkeep, crie uploads/.gitignore com estas duas linhas. * ignora o conteúdo e !.gitignore permite rastrear o próprio arquivo de regras.

O arquivo de regras é o marcador rastreado, então permanece dentro do diretório. Essa abordagem ignora intencionalmente novos arquivos até que as regras mudem.

*
!.gitignore

Por que ! não mantém um arquivo em um diretório ignorado?

3. Verifique a abordagem escolhida

Para a abordagem .gitignore, prepare o arquivo de regras:

git add -- uploads/.gitignore

Crie uploads/example.bin e verifique a correspondência:

git check-ignore -v -- uploads/example.bin

O índice deve listar uploads/.gitignore, não example.bin. Se uma regra pai exclui uploads inteiro, corrija-a primeiro para o Git conseguir ler o .gitignore interno.

git ls-files -- uploads/

Como ignorar pastas? folder/ ou /folder/

Consulte as referências oficiais para conhecer o comportamento exato e mais detalhes: Documentação do Git · Documentação de git add