Comment fusionner git s'engage dans le développement de la branche à une fonction de direction
J'ai une développer la branche et la branche dans mon repo git. J'ai ajouté un s'engagent à élaborer et maintenant, je veux que s'engager à être fusionné à ma branche. Si je fais cela
git checkout feature
git merge develop
Je me retrouve avec une fusion de la validation. Car je vais être l'intégration de nouvelles s'engage à développer de ma branche, souvent, je voudrais éviter tous ces inutiles de fusion s'engage. J'ai vu ce réponse qui suggérait de faire une git rebase develop
mais elle finit rembobiner ma branche trop loin et le rebase échoue.
Mise à jour:
Ce que j'ai fait était
git checkout feature
git merge develop # this creates a merge commit that I don't want
git rebase # this gets rid of the merge commit but keeps the commits from develop that I do want
git push
Mise à jour: je viens de remarquer qu'à l'origine, s'engager à développer obtient un hachage différent quand je les fusionner ensuite rebase de la branche. Je ne pense pas que c'est ce que je veux, parce que finalement je vais fonctionnalité de fusion de retour en développer et je devine que ce ne sera pas jouer gentil.
- Hmm, eh bien, je sais que vous pouvez "squash" votre s'engage lorsque vous rebase, comme un moyen de ne pas avoir autant s'engage sur votre branche. Découvrez gitready.com/advanced/2009/02/10/....
- La relocalisation est la réponse, si il ne fonctionne pas pour vous, il y a une autre question que vous devriez vous demander pourquoi il ne fonctionne pas.
Vous devez vous connecter pour publier un commentaire.
Pour intégrer une succursale dans un autre, vous devez soit de fusionner ou de rebase. Car il n'est sûr de rebase s'engage à ce que ne sont pas référencé nulle part ailleurs (pas fusionné à d'autres branches locales; pas poussé à distance), il est généralement préférable de les fusionner.
Si votre branche est purement local, vous pouvez rebase sur le dessus de développer. Cependant, il faut du temps pour comprendre comment cela fonctionne, et avant de vous faire, c'est assez facile de produire accidentellement dupliqué ou supprimés s'engage. De fusion s'engage pourrait ressembler bruyant, mais la fusion est la garantie d'être toujours sûr et prévisible.
Pour une meilleure vue, essayez de vous connecter à tout ensemble dans un graphe:
Il est aussi intéressant de voir si vous avez vraiment besoin les commits sur
develop
fusionné dansfeature
. Souvent, ils sont les choses qui peuvent être laissés séparé jusqu'à ce quefeature
est fusionné dansdevelop
plus tard.Si vous trouverez régulièrement vous avez besoin
develop
code surfeature
alors il pourrait être un signe que vos branches sont trop longues. Idéalement fonctionnalités devraient être réparties de telle manière qu'ils puissent travailler de façon indépendante, sans avoir besoin régulier de l'intégration le long de la voie.Si vous voulez seulement un commit de la
develop
direction générale, vous pouvez choisir dans votrefeature
branche:La livraison sera appliqué comme un nouveau sur le dessus de votre branche (à condition qu'il ne génère pas de conflit), et quand vous allez fusionner les
feature
branche Git va composer avec elle sans conflits.