Visual Studio Code comment résoudre les conflits de fusion avec git?

106

J'ai essayé de fusionner ma branche avec une autre branche et il y a eu un conflit de fusion. Dans Visual Studio Code (version 1.2.1), j'ai résolu tous les problèmes, mais lorsque j'essaie de valider, il continue de me donner ce message:

Vous devez d'abord résoudre les modifications non fusionnées avant de valider vos modifications.

J'ai essayé de le googler mais je ne peux pas savoir pourquoi il ne me laisse pas valider mes modifications, tous les conflits ont disparu.

annedroiid
la source
1
Bien que ce que vous avez dit soit correct, cela ne résout pas le problème de la question. J'ai explicitement déclaré que j'avais déjà résolu tous les conflits de fusion dans la question.
annedroiid

Réponses:

111

Avec VSCode, vous pouvez trouver facilement les conflits de fusion avec l'interface utilisateur suivante. entrez la description de l'image ici

(si vous ne disposez pas de la barre supérieure, définissez-la "editor.codeLens": truedans Préférences utilisateur)

Il indique la modification actuelle que vous avez et la modification entrante du serveur. Cela facilite la résolution des conflits - appuyez simplement sur les boutons ci-dessus <<<< HEAD.

Si vous avez plusieurs modifications et que vous souhaitez les appliquer toutes à la fois - ouvrez la palette de commandes (Affichage -> Palette de commandes) et commencez à taper fusion - plusieurs options apparaîtront, y compris Merge Conflict: Accept Incoming, etc.

Sajeetharan
la source
1
avez-vous la dernière mise à jour! Je montrerai dans chaque ligne
Sajeetharan
1
Comment obtenir ces fusions, résoudre les options de conflit dans le code de Visual Studio.
user630209
1
comment activer cela, n'importe quel raccourci?. Je ne vois pas cette option dans mon fichier de conflit.
user630209
1
@RyeGuy Ces options sont affichées via CodeLens, vous avez donc CodeLens à activer (voir code.visualstudio.com/Docs/editor/… ).
Geri Borbás
72

Après essais et erreurs, j'ai découvert que vous deviez mettre en scène le fichier qui avait le conflit de fusion, puis vous pouvez valider la fusion.

annedroiid
la source
1
Oui correct. Toute validation, qu'il s'agisse d'un conflit de fusion ou de votre validation locale que vous essayez de pousser, doit être préparée avant que vous puissiez pousser cette validation.
surendrapanday
1
Pour ceux qui git add .ne savent pas si tous les fichiers ne sont pas organisés, vérifiez si vous vous trouvez dans le répertoire racine du projet. Il m'a fallu un certain temps pour comprendre cela. Ensuite, git add .pour mettre en scène tous les fichiers, puis cela m'a permis degit merge --continue
bensadiku
Et après avoir résolu le conflit de fusion, vous devez d'abord ENREGISTRER le fichier en conflit avant de préparer les modifications fusionnées.
nclark
22

Pour ceux qui ont du mal à trouver les "boutons de fusion".

La petite icône d'ampoule avec des options de fusion n'apparaît que si vous cliquez précisément sur le "marqueur de conflit de fusion"

<<<<<<<

Étapes (dans VS Code 1.29.x):

B12Toaster
la source
19
  1. Cliquez sur le bouton "Contrôle de la source" à gauche.
  2. Voir FUSION DES CHANGEMENTS dans la barre latérale.
  3. Ces fichiers ont des conflits de fusion.

Code VS> Contrôle de la source> Fusionner les modifications (exemple)

Geoffrey Hale
la source
1
J'avais l'habitude d'avoir les options "Accepter le changement actuel | Accepter le changement entrant ..." mais maintenant ces options ont tout simplement disparu de la ligne, une idée de la façon de révéler à nouveau ces options?
jet_choong
15

Le message d'erreur que vous obtenez est le résultat du fait que Git pense toujours que vous n'avez pas résolu les conflits de fusion. En fait, vous l'avez déjà fait, mais vous devez dire à Git que vous l'avez fait en ajoutant les fichiers résolus à l'index.

Cela a pour effet secondaire que vous pourriez simplement ajouter les fichiers sans résoudre les conflits, et Git penserait toujours que vous avez. Vous devez donc être diligent pour vous assurer que vous avez vraiment résolu les conflits. Vous pouvez même exécuter la compilation et tester le code avant de vous engager.

Tim Biegeleisen
la source
3

Pour VS Code 1.38 ou si vous ne trouvez aucun bouton "ampoule". Faites très attention au texte grisé au-dessus des conflits; il existe une liste d'actions que vous pouvez entreprendre.

Qiang Li
la source