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.
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.
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.
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.
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) :
Parcourez vos conflits ligne par ligne et choisissez de conserver le côté droit ou gauche en cochant les cases.
- ou -
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 -
Modifiez manuellement votre code dans la fenêtre Résultat.
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.
Utilisez la fenêtre Changements Git pour créer un commit de fusion et résoudre le conflit.
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.
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.