Comment résoudre de manière interactive (visuellement) les conflits dans SourceTree / git

J'utilise (Windows) SourceTree pour mon projet git. Je peux le faire dans l'invite de commande ou un terminal Linux.

mais, je me demande s'il y a une bonne façon de résoudre les conflits interactivement et visuellement. Par exemple, si pull détecte des conflits, l'apparition d'un outil de conflit basé sur GUI (par exemple, P4Merge). Est-il possible?

je fais toujours la résolution manuelle des conflits, ce qui est juste douloureux.

C'est, par exemple, un message git pull , de SourceTree.

git -c diff.mnemonicprefix=false -c core.quotepath=false pull --no-commit origin master
From W:repo
 * branch            master     -> FETCH_HEAD   

Updating 33c07bf..41e0249

error: Your local changes to the following files would be overwritten by merge:
    foo.cpp
    goo.cpp
    goo.hpp
Please, commit your changes or stash them before you can merge.
Aborting    

Completed with errors, see above.
110
demandé sur Camilo Martinez 2013-05-28 23:50:44

3 réponses

de SourceTree, cliquez sur Outils->Options. Ensuite, dans l'onglet" Général", assurez-vous de cocher la case pour permettre à SourceTree de modifier vos fichiers de configuration Git.

puis passez à l'onglet" Diff". Sur la moitié inférieure, utilisez la liste déroulante pour sélectionner le programme externe que vous souhaitez utiliser pour faire la diff et la fusion. J'ai installé KDiff3 et je l'aime assez. Lorsque vous avez terminé, cliquez sur OK.

maintenant quand il y a une fusion, vous peut aller sous Actions - > résoudre les conflits- > lancer un outil de fusion externe.

119
répondu gtrig 2013-10-22 18:30:21

J'utilise SourceTree avec TortoiseMerge/Diff, qui est très facile et convinient diff/merge tool.

si vous souhaitez l'utiliser, puis:

  1. Get standalone version of TortoiseMerge/Diff (assez ancienne, puisqu'elle n'est plus autonome depuis la version 1.6.7 de TortosieSVN, c'est-à-dire depuis juillet 2011). Liens et détails dans cette réponse .

  2. Décompresser TortoiseIDiff.exe et TortoiseMerge.exe à n'importe quel dossier ( c:\Program Files (x86)\Atlassian\SourceTree\extras\ dans mon cas).

  3. Dans SourceTree ouvrir Tools > Options > Diff > External Diff / Merge . Sélectionnez TortoiseMerge dans les deux listes déroulantes.

  4. Hit OK et point SourceTree à votre lieu de TortoiseIDiff.exe et TortoiseMerge.exe .

après cela, vous pouvez sélectionner Resolve Conflicts > Launch External Merge Tool dans le menu contextuel sur chaque fichier en conflit dans votre dépôt local. Cela ouvrira TortoiseMerge, où vous pouvez facilement gérer tous les conflits, vous avez. Une fois terminé, fermez tout simplement TortoiseMerge (vous n'avez même pas besoin de sauvegarder les modifications, cela sera probablement fait automatiquement) et après quelques secondes SourceTree devrait gérer cela avec élégance.

le seul problème est qu'il crée automatiquement une copie de sauvegarde, même si l'option n'est pas cochée .

9
répondu trejder 2017-05-23 12:34:20

lorsque le Menu résoudre les conflits->contenu est désactivé, l'un d'eux peut figurer dans la liste des fichiers en attente. Nous avons besoin de sélectionner l'option Conflicted files à partir de la liste déroulante (en haut)

j'espère que ça aide

4
répondu ozkary 2015-03-31 16:41:28