Você pode ter vários .gitignore, cada um, é claro, em seu próprio diretório.
Para verificar qual a regra gitignore é responsável por ignorar um arquivo, uso git check-ignore: git check-ignore -v -- afile.
E você pode ter uma versão diferente de um .gitignorearquivo por ramificação: eu já vi esse tipo de configuração para garantir que uma ramificação ignore um arquivo enquanto a outra ramificação não: veja essa pergunta, por exemplo .
Se o seu repositório incluir vários projetos independentes, seria melhor referenciá-los como submódulos .
Essas seriam as melhores práticas reais, permitindo que cada um desses projetos seja clonado independentemente (com seus respectivos .gitignorearquivos), enquanto são referenciados por uma revisão específica em um projeto pai global.
Veja a verdadeira natureza dos submódulos para obter mais.
Observe que, desde o git 1.8.2 (março de 2013), você pode fazer um git check-ignore -v -- yourfilepara ver a qual execução do gitignore (a partir de qual .gitignorearquivo) é aplicada ' yourfile' e entender melhor por que esse arquivo é ignorado.
Consulte " qual gitignoreregra está ignorando meu arquivo? "