9 votes

Toujours utiliser la version de la branche fusionnée sur les conflits

Je travaille actuellement sur une branche de fonctionnalité qui sera bientôt fusionnée dans master. J'ai récemment essayé de le faire et j'ai eu quelques conflits de fusion, que j'ai dû résoudre manuellement.

Alors, est-il possible de dire à git de toujours utiliser la version de la branche fusionnée afin d'éviter les conflits de fusion à l'avance ? Dans ce cas, j'ai corrigé les conflits manuellement mais j'ai toujours choisi la version de la branche fusionnée, donc cela m'épargnerait un travail fastidieux.

18voto

Mark Longair Points 93104

Vous pouvez faire exactement cela dans git avec la commande suivante, en supposant que feature est le nom de votre branche de fonctionnalité :

git merge -s recursive -X theirs feature

Il s'agit d'utiliser la stratégie de fusion "récursive", mais avec l'option "leurs". Cela signifie que lorsqu'il y a un conflit, il sera automatiquement résolu en prenant la version du hunk de la branche des fonctionnalités, et non de votre branche actuelle. (Notez que ceci est complètement différent de la stratégie de fusion "theirs", qui a maintenant été retirée de git).

Cette fonctionnalité a été introduite dans git v1.7.0.

0voto

Adam Dymitruk Points 34999

Vous ne pouvez pas utiliser la stratégie récursive "ours". Elle omettrait vos modifications qui ne sont pas en conflit.

Vous pourriez script obtenir les noms des fichiers en conflit, et faire un git checkout --notre -- nom de fichier suivi d'un git add nom de fichier.

Si vous obtenez toujours les mêmes conflits, activez rerere et cela peut suffire pour que vous n'ayez pas à résoudre les conflits.

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X