Résoudre les conflits de fusion dans Visual Studio Code

Quand vous fusionnez une branche dans une autre, les changements de fichier effectués à partir des commits d’une branche peuvent être en conflit avec les changements de l’autre branche. Git tente de résoudre ces changements en utilisant l’historique de votre dépôt pour déterminer à quoi doivent ressembler les fichiers fusionnés. Quand il a un doute sur la façon de fusionner les changements, Git arrête la fusion et vous indique les fichiers en conflit.

Empêcher les conflits de fusion

Dans la plupart des cas, Git réussit bien à fusionner automatiquement les changements de fichier, tant que le contenu du fichier ne change pas considérablement entre les commits. Si votre branche est loin derrière votre branche primaire, rebasez vos branches avant d’ouvrir une demande de tirage. Les branches rebasées sont fusionnées dans votre branche primaire sans conflits.

Résoudre les conflits de fusion

  • Si vous collaborez avec d’autres personnes de la même branche, vous pouvez avoir des conflits de fusion quand vous poussez vos changements.

    Capture d’écran d’un conflit de fusion après une poussée.

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

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

    Notes

    Si votre dépôt distant prend en charge Forcer la poussée, vous pouvez l’activer en utilisant Git>Paramètres.

    Dans cet exemple, sélectionnez Tirer puis pousser pour ajouter les changements introduits dans le dépôt distant. S’il existe des conflits de fusion quand vous tirez des changements ou essayez de fusionner deux branches, Visual Studio vous en informe dans la fenêtre Changements 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. Sinon, si vous avez un fichier avec des conflits ouvert dans l’éditeur, vous pouvez sélectionner Ouvrir l’éditeur de fusion.

    Capture d’écran de l’état du conflit de fusion dans la fenêtre Changements Git.

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

    1. Parcourez vos conflits ligne par ligne et choisissez de conserver le côté droit ou gauche en cochant les cases.

      - ou -

    2. Sélectionnez le bouton Accepter l'entrant (ou appuyez sur F10) pour accepter toutes les modifications entrantes, ou sur le bouton Accepter l'actuel (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 à cocher dans le coin supérieur de chaque 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 la vue verticale :

    Capture d’écran de la vue verticale dans l’interface utilisateur de l’éditeur de fusion.

  • Dès que 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 Changements Git pour créer un commit de fusion et résoudre le conflit.

    Capture d’écran montrant comment créer un commit de fusion dans la fenêtre Changements Git.

    Remarque

    Si vous souhaitez conserver toutes les modifications apportées à un fichier, vous pouvez faire un clic droit sur ce fichier dans la section Modifications non fusionnées et sélectionner Conserver les modifications actuelles (locales) sans avoir à ouvrir l'Éditeur Fusionner.

    Capture d’écran de l’option de menu Conserver 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.

Configurer votre outil diff

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