2017-09-26 3 views
0

J'ai le scénario suivant dans Git: 2 branchesconflit de fusion lors de la fusion de retour au maître

  • développer
  • maître

Tout le développement se fait sur develop. Sur develop nous allons créer une nouvelle branche snapshot lorsque nous voulons créer un instantané. Sur cette branche snapshot, nous allons créer une branche release lorsque nous voulons la libérer.

Après une release nous fusionner la branche de sortie de retour avec sa branche snapshot et nous fusionner la branche release avec le master.

Lors d'une version, nous changeons la version avec mvn:set dans le fichier pom.xml. Ce processus fonctionne correctement sauf la dernière étape. Je reçois parfois des conflits avec la fusion entre release et master.

Et exemple: je crée une version et fusionne avec master = ok. Ensuite, je fais un correctif sur ma branche snapshot (ajouter un fichier) et relâchez. La nouvelle version va fusionner à nouveau avec l'instantané, mais la fusion avec mon maître a un conflit, mais seulement sur le pom.xml:

Branch master set up to track remote branch master from origin. 
Auto-merging xxx/pom.xml 
CONFLICT (content): Merge conflict in xxx/pom.xml 

La version à l'intérieur pom.xml est différent bien sûr (version master doit être remplacée par la version de release branche). Mais c'est aussi le cas pour la fusion entre les branches release et snapshot où cela fonctionne toujours.

Le code est assez basique pour cette fusion. C'est presque le même code que la fusion entre la branche release et la branche support. où ça fonctionne toujours.

echo "merge Release branch with master branch"; 
git checkout master; 
git merge REL-1.0.0; 
git push origin master; 

Que manque-t-il ici?

Ceci est le contenu de mon pom.xml après une fusion unsuccesful où 1.0.1 doit être remplacé par 1.1.0

<<<<<<< HEAD 
    <version>REL-1.0.1</version> 
======= 
    <version>REL-1.1.0</version> 
>>>>>>> REL-1.1.0 
+0

Pourquoi fusionner la branche de publication dans le maître? Ce que je fais, c'est s'il y a une régression introduite dans la branche release, je sélectionne la commit du master et la place sur la branche release. La branche de publication est créée à partir du dernier master. – LethalProgrammer

Répondre

0

Vous devez résoudre ce conflit avant engager et pousser, de sorte que vous avez faire quelque chose comme echo "merge Release branch with master branch"; git checkout master; git merge REL-1.0.0; git mergetool --tool=kdiff3 git commit git push origin master;