Qu'est-ce qu'un bon outil de fusion visuelle (gratuit) pour Git? (sur les fenêtres) [fermé]

154

Une question similaire a déjà été posée, mais pour Ubuntu.

Il serait utile de savoir si l'outil est gratuit comme dans la bière ou comme dans liber.

De plus, il serait bon de connaître les hauts et les bas de l'outil.

Tal Galili
la source

Réponses:

73

Sous Windows, un bon outil de comparaison / fusion à 3 voies reste kdiff3 ( WinMerge , pour l'instant, est toujours basé sur 2 voies, en attente de WinMerge3)

Voir « Comment fusionner dans GIT sous Windows? » Et cette configuration .


Mise à jour 7 ans plus tard (août 2018): Artur Kędzior mentionne dans les commentaires :

Si les gars vous arrive d'utiliser Visual Studio (Community Edition est gratuit), essayez l'outil est livré avec elle: vsDiffMerge.exe. C'est vraiment génial et facile à utiliser.

VonC
la source
1
Bien que je préfère la Colombie-Britannique, je vais vérifier cet outil.
Preet Sangha
3
@Preet: BC reste le meilleur;) Mais pour un outil gratuit (multi-plateforme en plus), kdiff3 n'est pas mal.
VonC
mais ce n'est certainement pas si bon non plus :) J'ai tendance à trouver plus facile d'utiliser mon éditeur de code habituel.
Warpzit
1
@Warpzit Je suis d'accord qu'il y a un peu de courbe d'apprentissage, mais j'y suis habitué maintenant;)
VonC
1
@ ArturKędzior Merci. J'ai inclus votre commentaire dans la réponse pour plus de visibilité.
VonC
72

J'ai également utilisé Meld . C'est écrit en python. Il existe un programme d'installation officiel pour Windows qui fonctionne bien.

Installez-le, puis définissez-le comme votre outil de fusion par défaut.

$ git config --global merge.tool "meld"
$ git config --global mergetool.meld.path "C:\Program Files (x86)\Meld\Meld.exe"

Si vous utilisez un client GUI GIT, essayez ce qui suit (instructions pour SourceTree, ajustez en conséquence)

  • Dans SourceTree, allez dans Outils / Options / Diff
  • Dans External Diff Tool, choisissez Personnalisé
  • Entrez C:\Program Files (x86)\Meld\meld.exedans la commande Diff et $LOCAL $REMOTEdans Arguments
  • Dans Merge Tool, choisissez Personnalisé
  • Entrez C:\Program Files (x86)\Meld\meld.exedans la commande Diff et $LOCAL $MERGED $REMOTEdans Arguments
Gordolio
la source
9
Merci, Meld est vraiment sympa :) C'est vraiment clair et facile de voir ce qui se passe. Merci d'avoir publié les instructions d'installation. J'aurais été perdu sans ça.
Daniel Tonon
5
Si vous utilisez cygwin / babun, remplacez la 2ème option par:git config --global mergetool.meld.path "/cygdrive/c/Program Files (x86)/Meld/Meld.exe"
tempestSA
1
+1 pour la config git, je l'ai utilisé avec P4Merge ci-dessous:git config --global merge.tool "p4merge" && git config --global mergetool.p4merge.path "C:\Program Files\Perforce\p4merge.exe"
Mark C
@Gordolio, Existe-t-il une interface utilisateur "simple" ou "basse résolution" pour fusionner? Le graphisme est un peu trop beau ce qui s'étouffe totalement sur des fichiers énormes.
Pacerier
1
J'ai essayé Meld et c'était bien, avec de jolis graphismes, mais au final j'ai opté pour Beyond Compare, avec un salaire, et j'ai été très content. Un inconvénient de Meld est que les boutons ne donnent pas de descriptions de survol de la souris. Un autre - Beyond Compare fournit des boutons pour passer d'une différence à la suivante. Un autre - Beyond Compare montre les chemins de fichiers dans les barres de titre de la fenêtre. Meld était certainement "assez bien", mais je préfère payer pour Beyond Compare. (Et je n'ai aucune affiliation avec Beyond Compare).
Stephen Hosking
28

J'utilise P4Merge , c'est gratuit et multiplateforme.

P4Merge

Daniel Little
la source
1
Est-ce toujours gratuit? Cela ne semble pas du tout gratuit.
null_pointer
4
Oui, toujours 100% gratuit, mais leur page de téléchargement le cache un peu.
Daniel Little
8
C'est gratuit comme l'a dit Daniel, mais lorsque vous exécutez le programme d'installation, vous devez désactiver toutes les options à l'exception de "Visual Merge Tool". Sinon, il vous invitera à vous connecter à un serveur Perforce. Fonctionne très bien avec SourceTree.
John
11
Une fois installé, configurez-le en tant que mergetool en utilisant:git config --global merge.tool "p4merge" && git config --global mergetool.p4merge.path "C:\Program Files\Perforce\p4merge.exe"
Mark C
1
Essayer de comprendre comment télécharger la version Windows de p4merge en utilisant votre lien semble une tâche ardue. Il n'y a pas de lien de téléchargement clair que je peux voir.
Artif3x
25

Je ne connais pas un bon outil gratuit mais winmerge est ok (ish) . J'ai utilisé l' au - delà de la comparaison outils depuis 1999 et je ne peux pas le noter assez - il coûte environ 50 USD et cet investissement a été rentabilisé par des économies de temps plus que je ne peux l'imaginer.

Parfois, les outils doivent être payés s'ils sont très très bons.

Preet Sangha
la source
5
+1 pour mentionner les options payantes.
eckes
1
winmerge est nul. L'interface utilisateur rend difficile la distinction entre la gauche et la droite.
Pacerier
1
J'ai utilisé WinMerge pendant des années et je pense que c'est génial. Ensuite, je suis passé à git pour le contrôle de version et j'avais besoin d'une interface graphique pour la comparaison de version. J'ai d'abord essayé Meld et je l'ai trouvé bon, mais à court de fonctionnalités. Beyond Compare a résolu le problème pour moi, et je suis très heureux de payer pour cela.
Stephen Hosking
16
  • TortoiseMerge (qui fait partie de ToroiseSVN) est bien meilleur que kdiff3 (j'utilise les deux et je peux comparer );
  • p4merge (de Perforce) fonctionne également très bien;
  • Diffuse n'est pas si mal;
  • Diffmerge de SourceGear n'a qu'un seul défaut dans la gestion des fichiers UTF8 sans nomenclature, ce qui rend inutilisable dans ce cas.
Blaireau paresseux
la source
TortoiseGitMerge est en fait assez bon - je ne connais pas kdiff3, mais je n'ai jamais été malheureux ou manqué quoi que ce soit dans TortoiseGitMerge, cela me permet de faire des fusions à deux et trois voies très rapidement et intuitivement.
mindplay.dk
@ mindplay.dk - TortoiseGitMerge est (principalement) un bon vieux TortoiseMerge sous le capot
Lazy Badger
TortoiseMerge ne prend pas en charge dir-diff
andrew.rockwell
1

Une autre option gratuite est jmeld: http://keeskuip.home.xs4all.nl/jmeld/

C'est un outil java et pourrait donc être utilisé sur plusieurs plateformes.

Mais (comme Preet l'a mentionné dans sa réponse), la gratuité n'est pas toujours la meilleure option. Le meilleur outil de comparaison / fusion que j'ai jamais rencontré est Araxis Merge . L'édition standard est disponible pour 99 EUR, ce qui n'est pas tant que ça.

Ils fournissent également une documentation sur la façon d'intégrer Araxis à msysGit.

Si vous souhaitez vous en tenir à un outil gratuit, JMeld se rapproche assez d'Araxis.

eckes
la source
J'ai aussi entendu beaucoup de bonnes choses sur Araxis.
Preet Sangha
-1

Quel est le problème avec l'utilisation de Git pour Windows? Dans la vue du dépôt, il y a une icône de la branche dans laquelle vous vous trouvez (en haut), et si vous cliquez sur gérer, vous pouvez glisser-déposer de manière très visuelle et pratique.

user1553825
la source
7
Je pense que la question portait sur la résolution des conflits de fusion.
Leif Gruenwoldt