Passer au contenu
GitTree
Fusionner et résoudre

Résoudre les conflits de fusion

Un conflit se produit lorsque les deux branches modifient les mêmes lignes. Le résolveur de GitTree affiche les deux versions côte à côte, A et B : cochez les lignes à conserver dans chaque conflit, cochez le Output, puis Save et continuez la fusion, le rebase ou le tri.

GratuitMis à jour

Fonctionne dans GitTree Gratuit : toutes les fonctionnalités Git locales, une fois connecté.

Sur cette page
  1. Avant de commencer
  2. Où le trouver
  3. Mesures
  4. Résultat attendu
  5. Des moyens de résolution plus rapides
  6. Si quelque chose ne va pas
  7. Questions
  8. En rapport

Avant de commencer

  • Une fusion, un rebase, un Cherry-Pick ou un Revert stoppé par des conflits : la bannière le dit et les compte.

Où le trouver

  • La bannière au-dessus du graphique : Resolve.
  • Dans le panneau des modifications, les fichiers en conflit sont répertoriés en premier ; sélectionnez-en un pour l’ouvrir.
ActionmacOSWindows et Linux
Prochaine modification dans le fichierF7F7
Modification précédente dans le fichier⇧F7Shift+F7

Mesures

  1. Ouvrez le fichier en conflit

    Sélectionnez Resolve dans la bannière. Le résolveur ouvre le premier fichier en conflit, avec le nombre de conflits qu'il contient et 0 of 2 conflicts resolved au-dessus.

    Le résolveur de conflits GitTree avec QuickOpen.tsx : deux conflits entre le développement (A) et la fonctionnalité/recherche (B) et la sortie ci-dessous
    Chaque côté nomme son commit et sa branche ; la sortie ci-dessous montre ce que le fichier contiendra.Interface GitTree avec un référentiel de démonstration.
  2. Décider de chaque conflit

    Pour Conflict 1, cochez les lignes à conserver dans A, dans B, ou dans les deux. Keeps 1 of 1 lines confirme votre choix ; le conflit est marqué comme résolu dès que quelque chose est décidé. Take Neither n'en conserve aucun.

  3. Vérifiez la sortie

    Le volet Output affiche le fichier tel qu'il sera enregistré, avec une note sur chaque conflit encore indécis et Go to Conflict pour y accéder. Utilisez Edit Output pour saisir un correctif à la main et Show Base pour voir l'ancêtre commun.

  4. Enregistrer et continuer

    Appuyez sur Save pour écrire le fichier et marquez-le comme résolu. Lorsque chaque fichier est résolu, choisissez Continue dans la bannière pour terminer l'opération.

Résultat attendu

L'étape de fusion (ou de rebase) se termine avec votre résolution et la bannière disparaît.

Des moyens de résolution plus rapides

  • La case à côté de A ou B dans l'en-tête prend en compte tous les conflits du fichier de ce côté.
  • Undo Choice et Redo Choice parcourent vos décisions sans toucher au dossier.
  • Open in Merge Tool transmet le fichier à l'outil de fusion externe défini dans votre configuration Git.
  • Avec rerere activé, Git réutilise la façon dont vous avez résolu le même conflit auparavant ; GitTree indique Reused resolution et vous permet de le consulter.

Si quelque chose ne va pas

"Le résultat comporte toujours... des lignes de marqueurs de conflit ; il ne peut pas être enregistré tant qu'elles ne sont pas supprimées."

Vous avez modifié la sortie à la main et une ligne telle que <<<<<<< ou >>>>>>> reste. Supprimez-le ou décidez plutôt du conflit avec les cases.

"Ce fichier a changé sur le disque pendant que vous le résolviez."

Un autre programme a écrit dans le fichier. GitTree conserve vos choix précédents : comparez-les avec le fichier maintenant, utilisez-les comme sortie ou supprimez-les.

Questions

De quel côté est le mien ?

Lors d'une fusion, A est votre branche actuelle et B la branche en cours de fusion ; chaque en-tête nomme le commit et la branche. Lors d'un rebase, ils échangent : A est la branche sur laquelle vous rebasez, B votre commit en cours de relecture.