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?

Foi útil?

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:

smudge content filter

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top