2012-05-11 4 views
1

J'ai deux branches pour un projet sur lequel je travaille, une branche publique étant poussée vers GitHub et une branche déployée vers Heroku. La branche de déploiement contient un fichier avec une clé secrète, et la branche publique contient des fichiers tels que LICENSE, README.md et un générateur de clé secrète. Quand j'apporte des modifications au projet, je veux le faire sur la branche de déploiement, puis quand je suis prêt à pousser, fusionner ceci dans la branche publique, puis pousser les différentes branches vers leurs télécommandes respectives. Toutefois, lorsque vous tentez de fusionner le déploiement en public, il ajoute le fichier spécifique à Heroku et supprime les fichiers spécifiques à GitHub.Comment avoir différents fichiers sur différentes branches et ne pas les détruire les uns les autres lors de la fusion?

J'ai essayé deux approches pour éviter cela: avoir les référentiels synchronisés et faire une fusion complète, mais ayant des fichiers .gitignore différents, et utiliser des fichiers .gitattributes pour ignorer les fichiers susmentionnés lors de la fusion. Les deux semblent échouer.

Répondre

0

Effectuez une fusion --no-commit. Script le contrôle des fichiers que vous voulez/supprimer les fichiers que vous ne voulez pas. Maintenant git commit.

git merge --no-commit origin/my-branch 
git checkout --theirs License.txt 
rm super-secret-key.txt 
git commit 
0

Vous devriez peut-être repenser votre flux de travail. Si vous avez vraiment besoin de garder quelque chose de secret dans le dépôt git, il serait probablement préférable de travailler sur une branche publique et de la fusionner avec la branche de déploiement.

Je ne comprends pas ce que le "supprime les fichiers spécifiques à GitHub". partie signifie cependant, ce qui provoque la suppression de ces fichiers?

+0

La branche publique possède le readme, etc., mais pas la branche deploy. Lorsque je fusionne le déploiement en public, il supprime ces fichiers. – vinnydiehl

Questions connexes