git - with - sourcetree squash




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

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

Mais, je me demande s'il existe une bonne façon de résoudre les conflits de manière interactive et visuelle. Par exemple, si pull détecte des conflits, ouvrir un outil de conflit basé sur une interface graphique (par exemple, P4Merge). C'est possible?

Je suis toujours en train de résoudre les conflits manuels, ce qui est juste douloureux.

C'est, par exemple, un message git pull , provenant 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.

À partir 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.

Ensuite, passez à l'onglet "Diff". Dans la partie inférieure, utilisez le menu déroulant pour sélectionner le programme externe que vous voulez utiliser pour faire les diffs et les fusionner. J'ai installé KDiff3 et KDiff3 aime assez bien. Lorsque vous avez terminé, cliquez sur OK.

Maintenant, quand il y a une fusion, vous pouvez aller dans Actions-> Résoudre les conflits-> Lancer l'outil de fusion externe.


J'utilise SourceTree avec TortoiseMerge / Diff, qui est un outil de comparaison / fusion très simple et pratique.

Si vous souhaitez l'utiliser aussi, alors:

  1. Obtenir la version autonome de TortoiseMerge / Diff (assez ancienne, puisqu'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 .

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

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

  4. Hit OK et pointez SourceTree à votre emplacement de TortoiseIDiff.exe et TortoiseMerge.exe .

Après cela, vous pouvez sélectionner Resolve Conflicts > Launch External Merge Tool de Resolve Conflicts > Launch External Merge Tool dans le menu contextuel de chaque fichier en conflit dans votre référentiel local. Cela va ouvrir TortoiseMerge, où vous pouvez facilement gérer tous les conflits, vous avez. Une fois terminé, fermez simplement TortoiseMerge (vous n'avez même pas besoin d'enregistrer 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 appropriée n'est pas cochée .





atlassian-sourcetree