Question

Y at-il un moyen simple de configurer différents fichiers .gitignore pour différentes télécommandes? J'ai un dépôt que je pousse à la fois Heroku et Github. J'ai besoin database.yml pour Heroku, mais ne veulent pas certaines des informations à être poussé jusqu'à Github. Donc je besoin d'un fichier .gitignore différent pour chacun des télécommandes.

J'ai essayé d'avoir deux branches distinctes, qui ne tient pas compte database.yml, et qui ne fonctionne pas. Le problème est que quand j'extrayez de la branche Heroku et retourne dans ma branche github, le fichier entier database.yml est parti.

Des conseils?

Était-ce utile?

La solution

Je ne sais pas quoi que ce soit au sujet des exigences pour Heroku - espérons-Justice est juste et vous pouvez simplement éviter le problème. Si vous ne pouvez pas, ou si quelqu'un d'autre trouve ce qui ne peut pas ...

Si vous voulez que les deux télécommandes pour être des miroirs (les mêmes commits), ils doivent nécessairement avoir les mêmes fichiers dans ces commits. Donc, vous avez deux choix: ont file-for-repo-B dans tous les dépôts, même si elles ne ont pas besoin ou utiliser avec deux branches d'un flux de travail un peu en désordre: master et for-repo-B. La seule différence entre les deux branches seraient les commits touchant file-for-repo-B; la for-repo-B branche serait toujours de fusionner master (mais jamais l'inverse!). Maintenant, vous avez juste une branche différente vérifié dans B repo, et tout est bon.

Autres conseils

Ne pas mettre des informations de base de données dans database.yml. Au lieu de cela, utilisez les variables d'environnement Heroku.

Vous devez versionnée a:

  • database.yml avec seulement les variables, et
  • un script capable de remplacer ces variables par les bonnes valeurs en fonction du serveur distant où cette database.yml est déployée.

Ensuite, vous utilisez le script comme maculage pilote de filtre d'attribut :

filtre de contenu bavure

Chaque fois que vous la caisse (et créer un arbre de travail) sur un serveur distant, le script est exécuté et modifier les variables en conséquence, vous donnant un fichier database.yml personnalisé.
Si l'un des la télécommande n'a pas besoin de ce fichier database.yml, il peut encore être là, mais vidé par le script de maculage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top