Acho que esse é um problema que todos tiveram problemas em algum momento.
Aqui está um fluxo de trabalho que usei, que pode funcionar para você. Ele usa .gitignore com uma torção:
- Todos os arquivos de configuração vão em uma pasta especial (com arquivos de configuração de amostra - opcionais)
- Todos os arquivos de configuração estão incluídos no .gitignore, para que eles não sejam públicos
- Configure um servidor gitolite (ou seu servidor git favorito) em uma caixa privada
- Adicione um repo com todos os arquivos de configuração no servidor privado
- Adicione um script para copiar arquivos de configuração para a pasta especial no repositório principal (opcional)
Agora, você pode clonar o repositório de configuração em qualquer sistema de desenvolvimento e implantação. Basta executar o script para copiar os arquivos para a pasta correta e pronto.
Você ainda recebe todos os doces do GitHub, compartilha seu código com o mundo e os dados confidenciais nunca estão no repositório principal, para que eles não sejam públicos. Eles ainda são apenas uma atração e uma cópia de qualquer sistema de implantação.
Eu uso uma caixa de 15 $ / ano para o servidor git privado, mas você também pode configurar uma em casa, de acordo com o requisito do cheapskate; -)
PS: Você também pode usar um submódulo git ( link ), mas eu sempre esqueço os comandos, então quick & regras sujas!