Heroku a pour politique d'ignorer toutes les branches sauf «maître».
Bien que je sois sûr que les concepteurs de Heroku ont d'excellentes raisons pour cette politique (je suppose pour le stockage et l'optimisation des performances), la conséquence pour moi en tant que développeur est que quelle que soit la branche de sujet locale sur laquelle je puisse travailler, j'aimerais un moyen simple pour basculer le maître de Heroku vers cette branche de sujet locale et faire un "git push heroku -f" pour écraser le maître sur Heroku.
Ce que j'ai obtenu en lisant la section "Pushing Refspecs" de http://progit.org/book/ch9-5.html est
git push -f heroku local-topic-branch: refs / heads / master
Ce que j'aimerais vraiment, c'est un moyen de mettre cela en place dans le fichier de configuration pour que "git push heroku" fasse toujours ce qui précède, en remplaçant local-topic-branch par le nom de ce que ma branche actuelle est. Si quelqu'un sait comment y parvenir, faites-le moi savoir!
La mise en garde pour cela, bien sûr, est que cela n'est raisonnable que si je suis le seul à pouvoir accéder à cette application / référentiel Heroku. Une équipe de test ou d'assurance qualité pourrait gérer un tel référentiel pour essayer différentes branches candidates, mais elles devraient se coordonner de manière à ce qu'elles s'accordent toutes sur la branche sur laquelle elles le poussent un jour donné.
Inutile de dire que ce serait également une très bonne idée d'avoir un référentiel distant séparé (comme GitHub) sans cette restriction pour tout sauvegarder. Je l'appellerais "origine" et j'utiliserais "heroku" pour Heroku afin que "git push" sauvegarde toujours tout à l'origine, et "git push heroku" pousse n'importe quelle branche sur laquelle je suis actuellement vers la branche principale de Heroku, en l'écrasant si nécessaire.
Est-ce que cela fonctionnerait?
[heroku à distance] url = git@heroku.com: my-app.git push = + refs / heads / *: refs / heads / master
J'aimerais entendre quelqu'un de plus expérimenté avant de commencer à expérimenter, même si je suppose que je pourrais créer une application factice sur Heroku et expérimenter avec ça.
En ce qui concerne la récupération, je ne me soucie pas vraiment si le référentiel Heroku est en écriture seule. J'ai toujours un référentiel séparé, comme GitHub, pour la sauvegarde et le clonage de tout mon travail.
Note de bas de page: Cette question est similaire, mais pas tout à fait la même chose que le déploiement de Good Git en utilisant la stratégie des branches avec Heroku?