Se você tentar dessa forma, ele falhará, porque você acabará colocando os diretórios na lista negra de sua estrutura.
Para resolver, você deseja colocar na lista negra tudo o que não é um diretório e não é um dos tipos de arquivo que deseja enviar, enquanto não coloca os diretórios na lista negra .
O .gitignore
arquivo que fará isso:
# First, ignore everything
*
# Now, whitelist anything that's a directory
!*/
# And all the file types you're interested in.
!*.one
!*.two
!*.etc
Testei isso em uma lista branca de estrutura de três níveis para .txt
arquivos na presença de *.one
, *.two
e *.three
arquivos usando um .gitignore
localizado no diretório raiz do repositório - funciona para mim. Você não terá que adicionar .gitignore
arquivos a todos os diretórios em sua estrutura.
As informações que usei para descobrir a resposta vieram, entre outras coisas, deste (stackoverflow.com).