J'utilise SourceTree (Windows) pour mon projet git. Je peux le faire avec une invite de commande ou un terminal Linux.
Mais, je me demande s’il existe un moyen agréable de résoudre les conflits de manière interactive et visuelle. Par exemple, si pull détecte des conflits, ouvrez un outil de conflit basé sur une interface graphique (par exemple, P4Merge). C'est possible?
Je suis toujours en train de résoudre manuellement les conflits, ce qui est douloureux.
Il s’agit par exemple d’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.
De SourceTree, cliquez sur Outils-> Options. Ensuite, sur 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 le menu déroulant pour sélectionner le programme externe que vous souhaitez utiliser pour effectuer les diffs et les fusions. J'ai installé KDiff et je l'aime assez bien. Lorsque vous avez terminé, cliquez sur OK.
Maintenant, quand il y a une fusion, vous pouvez aller sous Actions-> Résoudre les conflits-> Lancer l'outil de fusion externe.
J'utilise SourceTree avec TortoiseMerge/Diff, qui est un outil de différenciation/fusion très simple et pratique.
Si vous souhaitez également l'utiliser, alors:
Obtenez une version autonome de TortoiseMerge/Diff (assez ancienne, car elle n'est pas disponible depuis la version 1.6.7 de TortosieSVN, c'est-à-dire depuis juillet 2011). Liens et détails dans cette réponse .
Décompressez TortoiseIDiff.exe
et TortoiseMerge.exe
dans n'importe quel dossier (c:\Program Files (x86)\Atlassian\SourceTree\extras\
dans mon cas).
Dans SourceTree, ouvrez Tools > Options > Diff > External Diff / Merge
. Sélectionnez TortoiseMerge
dans les deux listes déroulantes.
Appuyez sur OK
et pointez SourceTree sur l'emplacement de TortoiseIDiff.exe
et TortoiseMerge.exe
.
Ensuite, vous pouvez sélectionner Resolve Conflicts > Launch External Merge Tool
dans le menu contextuel de chaque fichier en conflit dans votre référentiel local. Cela ouvrira TortoiseMerge, où vous pourrez facilement gérer tous les conflits que vous avez. Une fois terminé, fermez simplement TortoiseMerge (vous n’avez même pas besoin de sauvegarder les modifications, cela se fera probablement automatiquement) et au bout de quelques secondes, SourceTree devrait gérer cela en douceur.
Le seul problème est qu’il crée automatiquement une copie de sauvegarde, même si l’option appropriée est décochée .
Lorsque le menu Résoudre les conflits-> Contenu est désactivé, il est possible que l'un d'entre eux se trouve dans la liste des fichiers en attente. Nous devons sélectionner l'option Fichiers en conflit dans la liste déroulante (en haut).
j'espère que ça aide