web-dev-qa-db-fra.com

Azure DevOps - Extraire Git "Prochaines étapes: résoudre manuellement ces conflits et transmettre les nouvelles modifications à la branche source."

J'ai créé une branche nommée dev.

J'ai fait une demande d'extraction pour envoyer le code de développement au maître. Lorsque je fais cette demande d'extraction, il me dit: enter image description here

Plus de 50 conflits empêchent la fusion automatique "Prochaines étapes: résolvez manuellement ces conflits et transmettez les nouvelles modifications à la branche source."

Où vais-je d'ici? Je veux juste que toute la branche dev remplace tout ce qui est en master. Je ne vois aucune option pour résoudre ces conflits.

25
CBBSpike

Vous devrez faire ce qui suit sur votre PC

Sur la branche dev

$ git pull Origin master - Ceci créera un commit de fusion et vous devrez résoudre les conflits dans les fichiers qui sont modifiés à la fois sur dev et master. git status affichera la liste des fichiers avec des modifications conflictuelles.

Une fois les conflits résolus, validez toutes les modifications et forcez votre branche. Après cela, vous devriez pouvoir compléter le PR.

lien d'aide pour plus de détails

35
Harshil Lodhi

Etant donné que vous devez conserver la version des fichiers sur la branche dev (conserver la branche source lors du changement de fichiers dans la branche cible master), vous devez donc modifier la branche master pour la résoudre. fichiers en conflit et assurez-vous d’avoir l’autorisation de transmettre les modifications à la branche master.

Vous pouvez utiliser les options ci-dessous:

Option 1: fusionner directement

Dans votre référentiel local, vous pouvez exécuter les commandes ci-dessous pour fusionner dev dans la branche master tout en conservant la version des fichiers en conflit sous la branche dev:

git checkout master
git merge dev -X theirs
git Push Origin master

Et dans la demande d'extraction existante que vous avez créée, cela indique que la branche a été fusionnée. Vous pouvez donc abandonner la demande d'extraction.

Option 2: toujours fusionner via une demande d'extraction (résoudre les conflits sur la branche principale)

Vous pouvez utiliser les commandes ci-dessous pour résoudre les conflits dans la branche master:

# In yout local repo
git checkout master
git checkout dev -- .
git commit -m 'replace master branch version by dev for the conflict files'
git Push Origin master 

Les modifications apportées à la demande d'extraction existante ne seront pas mises à jour si de nouvelles validations sont envoyées vers la branche cible (maître). Et vous pouvez trouver le rapport similaire La demande d'extraction diff ne se met pas à jour lorsqu'un commit du PR est fusionné à la cible via une autre branche .

Cela signifie que la demande d'extraction de la page Web indique toujours les conflits. Vous devez abandonner la demande d'extraction existante et réactiver (ou en créer une nouvelle) pour fusionner dev dans la branche principale.

5
Marina Liu

Je devais faire un rebase. Je devais passer en revue tous les commits et appliquer mes modifications - elles étaient assez étendues, renommant les noms d'espaces de noms et de méthodes, etc. Ceci me permet de continuer à faire un Pull Request Dans le portail Azure DevOps. En fait, je pouvais simplement actualiser les modifications pour le Pull Request Existant et les conflits de fusion automatique ont été résolus.

La fusion du code n'a pas résolu le problème, seul rebase a fonctionné.

0
Scott Koland