Partage via


Résoudre les conflits de fusion dans Visual Studio

Lorsque vous fusionnez une branche dans une autre, les modifications apportées aux fichiers des validations dans une branche peuvent entrer en conflit avec les modifications de l’autre. Git tente de résoudre ces modifications à l’aide de l’historique de votre dépôt pour déterminer à quoi ressemblent les fichiers fusionnés. Quand il n’est pas clair comment fusionner les modifications, Git arrête la fusion et vous indique quels fichiers sont en conflit.

Empêcher les conflits de fusion

Git est bon pour fusionner automatiquement les modifications de fichier dans la plupart des cas, tant que le contenu du fichier ne change pas considérablement entre les validations. Si votre branche est loin derrière votre branche primaire, rebasez vos branches avant d’ouvrir une demande de tirage. Les branches redéployées se fusionnent dans votre branche principale sans conflits.

Résoudre les conflits de fusion

  • Si vous collaborez avec d’autres personnes dans la même branche, vous risquez de rencontrer des conflits de fusion lorsque vous poussez vos modifications.

    Capture d’écran du conflit de fusion après un envoi (push).

  • Visual Studio détecte si la branche locale sur laquelle vous avez travaillé se trouve derrière sa branche de suivi à distance, puis vous offre des options de choix.

    Capture d’écran des options disponibles lorsque la branche locale se trouve derrière la branche distante.

    Remarque

    Si votre référentiel distant prend en charge Force Push, vous pouvez l’activer à l’aide de Git>Paramètres.

    Dans cet exemple, sélectionnez pull, puis envoyez (push) pour inclure les modifications introduites dans le référentiel distant. S’il existe des conflits de fusion lorsque vous extrayez des modifications ou essayez de fusionner deux branches, Visual Studio vous indique dans la fenêtre Modifications Git, dans la fenêtre dépôt Git et sur tous les fichiers qui ont des conflits.

    Capture d’écran d’une notification de conflit de fusion.

  • La fenêtre Changements Git affiche la liste des fichiers avec des conflits sous Changements non fusionnés. Pour commencer à résoudre les conflits, double-cliquez sur un fichier. Ou si vous avez un fichier avec des conflits ouverts dans l’éditeur, vous pouvez sélectionner Ouvrir l’éditeur de fusion.

    Capture d’écran de l’état des conflits de fusion dans la fenêtre Modifications Git.

  • Dans l’Éditeur de fusion, commencez à résoudre votre conflit à l’aide de l’une des méthodes suivantes (comme illustré dans la capture d’écran numérotée) :

    1. Examinez vos conflits ligne par ligne, puis choisissez entre garder le côté droit ou gauche en cochant les cases correspondantes.

      ou

    2. Sélectionnez le bouton Accepter les modifications entrantes (ou appuyez sur F10) pour accepter toutes les modifications entrantes, ou le bouton Conserver la version actuelle (ou appuyez sur F11) pour conserver votre version actuelle de toutes les modifications en conflit. Vous pouvez faire la même chose en sélectionnant l’une des cases en haut du cadre côte à côte.

      ou

    3. Modifiez manuellement votre code dans la fenêtre résultat.

    Capture d’écran montrant comment résoudre un conflit de fusion dans Visual Studio 2022.

    Conseil

    Si vous n’aimez pas la disposition par défaut de l’éditeur de fusion, vous pouvez la changer avec le menu déroulant de l’icône d’engrenage.

    Capture d’écran des options de disposition de l’éditeur de fusion.

    Par exemple, la capture d’écran suivante montre à quoi ressemble l’affichage vertical :

    Capture d’écran de l’affichage vertical dans l’interface utilisateur de l’éditeur de fusion.

  • Lorsque vous avez terminé de résoudre les conflits de fusion, sélectionnez Accepter la fusion. Répétez ce processus pour tous les fichiers en conflit.

    Capture d’écran de l’action Accepter la fusion dans Visual Studio 2022.

  • Utilisez la fenêtre Modifications Git pour créer une validation de fusion et résoudre le conflit.

    Capture d’écran de la création d’une validation de fusion à l’aide de la fenêtre Modifications Git.

    Remarque

    Si vous souhaitez conserver toutes vos modifications apportées à un fichier, vous pouvez le cliquer avec le bouton droit dans la section Modifications non fusionnées, puis sélectionner Conserver le actuel (local) sans avoir à ouvrir l’Éditeur de fusion.

    Capture d’écran de l’option Conserver le menu Actuel.

Conseil

Pour en savoir plus sur les options d’accessibilité disponibles, consultez la section raccourcis clavier Git de la page Conseils et astuces d’accessibilité pour Visual Studio page.

Configurer votre outil de comparaison

Si vous définissez votre fichier .gitconfig pour utiliser un outil dediff tiers tel que BeyondCompare ou KDiff3, Visual Studio le respecte. Chaque fois que Visual Studio affiche normalement un écart, une fenêtre distincte est ouverte dans l’outil de votre choix. Pour obtenir un exemple, consultez cette question Stack Overflow.