Muitas vezes a hierarquia de pastas é importante em nossos projetos e precisamos criar pastas vazias no repositório.
Muitos desenvolvedores acabam descobrindo o problema quando fazem deploy no servidor e notam que as pastas não entraram no commit.
Como criar diretórios vazios então? Infelizmente o git só se importa com arquivos, e quando existe um diretório sem arquivos, ele é ignorado no controle de versão. Mas existem algumas soluções para o problema.
A solução para este problema é criar uma pasta quase vazia.
Criando um diretório quase vazio
Depois de criar sua pasta vazia, crie um arquivo .gitignore dentro dela, assim ela poderá ser adicionada ao commit e fará parte do repositório. Na verdade qualquer arquivo pode ser usado. Crie um arquivo oculto .keep se preferir, ou até mesmo um README.
A vantagem do gitignore é já ser meio padrão pra esse assunto e também servir para ignorar outros arquivos.
O arquivo oculto .gitignore pode ficar vazio ou conter uma listagem de arquivos que você queira ignorar nos seus commits mais tarde.
Vamos supor que você queira criar uma pasta uploads e adicionar somente esta pasta ao repositório, mas que todos os arquivos futuros dentro dela sejam ignorados.
Crie um arquivo .gitignore dentro da pasta e adicione o seguinte conteúdo:
# Exclui todos os arquivos da pasta
*
# Menos o próprio .gitignore
!.gitignore
Desta forma, a pasta será criada apenas com o .gitignore e nenhum arquivo adicionado futuramente à ela será considerado pelo git.
Se quiser que outros arquivos sejam considerados futuramente, basta criar um arquivo .gitignore vazio.