Existe uma maneira de remoto de instalação específicas .gitignores?
Pergunta
Existe uma maneira simples de configurar diferentes .gitignore arquivos para diferentes controles remotos?Eu tenho um repositório de me empurrar para cima para Heroku e Github.Eu preciso de banco de dados.yml para Heroku, mas não querem que alguma da informação a ser empurrada para o Github.Então eu preciso de um diferente .gitignore arquivo para cada um dos controles remotos.
Eu tentei ter dois ramos distintos, um que ignora banco de dados.yml, e um que não.O problema é que quando eu checkout o heroku ramo e ir de volta para o meu github ramo, o banco de dados inteiro.yml arquivo é removido.
Alguma dica?
Solução
Não sei nada sobre os requisitos para o Heroku - espero que a justiça esteja certa e você possa simplesmente evitar o problema. Se você não pode, ou se alguém encontrar isso que não pode ...
Se você deseja que os dois controles remotos sejam espelhos (tenham os mesmos compromissos), eles devem, por definição, ter os mesmos arquivos nesses compromissos. Então, você tem duas opções: tenha file-for-repo-B
Em todos os repositórios, mesmo que não precisem, ou use um fluxo de trabalho um pouco confuso com duas ramificações: master
e for-repo-B
. A única diferença entre os dois galhos seria o cometimentos tocando file-for-repo-B
; o ramo for-repo-B
sempre se fundiria de master
(Mas nunca o contrário!). Agora você só tem uma filial diferente check -out no Repo B, e tudo é bom.
Outras dicas
Não coloque informações do banco de dados no banco de dados.yml.Em vez disso, use Heroku variáveis de ambiente.
Você deve versionned a:
database.yml
com apenas variáveis, e- um script capaz de substituir as variáveis pelo direito de valores, dependendo do servidor remoto onde que
database.yml
é implantado.
Em seguida, você usar o script como um manchas de atributo de driver de filtro:
A cada vez que você checkout (e criar uma árvore de trabalho) em um servidor remoto, o script é executado e irá alterar as variáveis de acordo, dando-lhe um personalizado database.yml
arquivo.
Se o controle remoto não precisa que database.yml
arquivo, ele ainda pode estar lá, mas esvaziado por borrar script.