Puisque vous devez conserver la version des fichiers sur dev
branche (conserve la branche source tout en modifiant les fichiers dans la branche cible) master
), vous devez donc effectuer des modifications sur master
pour résoudre les fichiers en conflit, et assurez-vous d'avoir la permission de pousser les changements vers la branche master
branche.
Vous pouvez utiliser les options ci-dessous :
Option 1 : fusionner directement
Dans votre repo local, vous pouvez exécuter les commandes suivantes pour fusionner dev
en master
tout en conservant la version des fichiers de conflit comme branche dev
branche :
git checkout master
git merge dev -X theirs
git push origin master
Et dans la pull request existante que vous avez créée, il sera indiqué que la branche a été fusionnée. Donc vous pouvez abandonner la pull request.
Option 2 : fusionner quand même via une demande de tirage (résoudre les conflits sur la branche master)
Vous pouvez utiliser les commandes ci-dessous pour résoudre les conflits dans master
branche :
# 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
Alors que les changements dans la demande de retrait existante ne seront pas mis à jour si un nouveau commit est poussé vers la branche cible (master). Et vous pouvez trouver le rapport similaire Le diff de la demande de tirage ne se met pas à jour lorsqu'un commit de la PR est fusionné à la cible via une autre branche. .
Cela signifie que la demande de retrait dans la page Web montre toujours les conflits. Vous devez abandonner la pull request existante et la réactiver (ou en créer une nouvelle) pour fusionner dev dans la branche master.
1 votes
J'ai bien un bouton "Terminer" mais il est grisé.
7 votes
La fusion manuelle n'est pas possible dans l'environnement VSTS. Vous devez fusionner la branche master dans votre branche dev, résoudre les conflits, commiter et pousser.
1 votes
Voilà qui répond à ma question. Donc, dois-je fusionner la branche au lieu de faire une demande de retrait ?
1 votes
Avec une demande de retrait, vous donnez aux autres développeurs la possibilité de revoir votre code et de donner leur avis. Une fois cette révision terminée, vous pouvez alors fusionner le code dans la branche master. Vous ne devez pas fusionner localement la branche dev avec la branche master, puis la pousser, sauf si vous avez convenu avec vos collaborateurs que c'est ainsi que votre processus fonctionne. La solution est de fusionner le master dans votre branche dev et de résoudre les conflits, comme je l'ai indiqué dans mon commentaire précédent.
0 votes
Il semble que dans mon environnement (je ne suis pas autorisé à mettre à jour la branche source), il faille récupérer tous les fichiers de la branche source et recommencer à zéro )- :
1 votes
Je n'ai pas la permission de pousser vers master à partir de ma machine locale, seulement de revoir et d'approuver les demandes de pull (même les miennes) - c'est la seule façon de fusionner vers master. Toutes les solutions proposées ici reposent sur le travail local. Que faire à partir de là ?