Quel est le meilleur outil de fusion visuelle pour Git?

Quel est le meilleur outil pour visualiser et éditer une fusion dans Git? J'aimerais avoir une vue de fusion à trois, avec "mine", "leur" et "ancêtre" dans des panneaux séparés, et un quatrième panneau "Sortie".

aussi, des instructions pour invoquer ledit outil serait grand. (Je n'arrive pas à comprendre comment démarrer kdiff3 de telle manière qu'il ne me donne pas une erreur.)

mon OS est Ubuntu.

507
demandé sur the Tin Man 2008-09-26 04:27:35

18 réponses

Fusionner est un diff/merge tool.

Voici comment l'installer sur:

291
répondu user20805 2018-03-01 10:10:05

vous pouvez configurer votre propre outil de fusion à utiliser avec " git mergetool ".

exemple:

  git config --global merge.tool p4merge
  git config --global mergetool.p4merge.cmd p4merge '$BASE $LOCAL $REMOTE $MERGED'
  git config --global mergetool.p4merge.trustExitCode false

et pendant que vous y êtes, vous pouvez également le configurer comme votre difftool pour " git difftool ":

  git config --global diff.tool p4merge
  git config --global difftool.p4merge.cmd p4merge '$LOCAL $REMOTE'

notez que dans Unix/Linux vous ne voulez pas que le $BASE soit interprété comme une variable par votre shell - il devrait en fait apparaître dans votre ~/.gitconfig fichier pour que cela fonctionne.

82
répondu Evgeny 2016-08-16 16:54:11

Beyond Compare 3 , mon préféré, a un Fusion fonctionnalité dans le Pro edition . La bonne chose avec sa fusion est qu'il vous permet de voir les 4 vues: base, Gauche, Droite, et résultat fusionné. C'est un peu moins visuel que P4V mais bien plus que WinDiff. Il intègre avec beaucoup de contrôle source et fonctionne sur Windows/Linux. Il a beaucoup de des fonctionnalités comme les règles, les éditions d'alignement manuel...

le client visuel Perforce ( P4V ) est un outil gratuit qui fournit l'une des interfaces les plus explicites pour la fusion (voir quelques captures d'écran ). Fonctionne sur toutes les plates-formes principales. Ma principale déception avec cet outil est son genre de " interface en lecture seule . Vous ne pouvez pas éditer manuellement les fichiers et vous ne pouvez pas aligner manuellement.

PS: P4Merge est inclus dans P4V. Perforce essaie de rendre un peu difficile d'obtenir leur outil sans leur client.

"SourceGear Diff/Merge " peut être mon deuxième choix d'outil libre. Vérifiez que la fusion écrans-shot et vous verrez qu'il a les 3 vues au moins.


soude est un nouvel outil gratuit que je préfère Source Diff/Merge : maintenant il fonctionne aussi sur la plupart des plateformes (Windows/Linux/Mac) avec l'avantage de supporter nativement un certain contrôle source comme Git . Vous pouvez donc avoir un peu d'histoire diff sur tous les fichiers beaucoup plus simple. La vue merge (voir screenshot ) a seulement 3 panes, tout comme SourceGear Diff/Merge . Cela fait fusionner un peu plus difficile dans les cas complexes.

PS: Si un outil un jour supporte 5 vues fusionnant , ce serait vraiment génial, parce que si vous choisissez Cherry-commits dans Git vous avez vraiment pas une base mais deux. Deux bases, deux changements, et une fusion résultante.

60
répondu Wernight 2016-08-16 16:54:45

mon outil de fusion visuelle préféré est SourceGear DiffMerge

  • Il est libre.
  • multiplateforme (Windows, OS X et Linux).
  • Propre visuels de l'INTERFACE utilisateur
  • toutes les fonctionnalités diff que vous attendez (Diff, Merge, Folder Diff).
  • Interface en ligne de commande
  • .
  • raccourcis clavier utilisables.

User interface

39
répondu Luke 2014-09-23 15:14:28

j'ai entendu de bonnes choses sur kdiff3.

34
répondu kryger 2018-03-21 13:40:02

vous pouvez essayer p4merge .

visualisez les différences entre les versions de fichier avec P4Merge. Résoudre les conflits qui résultent du développement parallèle ou simultané par le codage couleur.

les caractéristiques comprennent:

  • mettre en évidence et modifier les différences dans les fichiers de texte
  • choisir d'inclure ou d'ignorer les fins de ligne ou les espaces blancs
  • reconnait line-ending conventions for Windows (CRLF), Mac (CR), and Unix (LF)
  • utiliser les paramètres de ligne de commande et de lancement à partir d'applications non-Perforce
  • afficher les numéros de ligne lors de la comparaison et de la fusion de fichiers
  • exclure les fichiers qui sont modifiés, uniques ou inchangés
  • filtrer les fichiers par nom ou extension
  • organiser les biens modifiés dans un fichier/dossier familier hiérarchie
  • comparer les formats JPEG, GIF, TIFF, BMP et autres
  • étendre en utilisant L'API Qt
  • Superposition d'images ou afficher côte-à-côte
  • mettre en Évidence les différences sur les images superposées
22
répondu Ron 2017-08-18 09:50:07

vimdiff

une fois que vous avez appris vim (et IMHO vous devriez), vimdiff est juste un petit concept orthogonal plus beau à apprendre. Pour obtenir de l'aide en ligne dans vim:

:help vimdiff

si vous êtes coincé dans les âges sombres de l'utilisation de la souris, et les fichiers que vous fusionnez ne sont pas très grands, je recommande meld.

21
répondu Andrew Wagner 2010-10-01 13:55:48

diffus est mon préféré mais bien sûr je suis partial. :-) Il est très facile à utiliser:

$ diffuse "mine" "output" "theirs"

Diffuse est un petit et simple outil de fusion de texte écrit en Python. Avec diffus, vous pouvez facilement fusionner, Modifier et réviser les modifications apportées à votre code. Diffus est un logiciel libre.

16
répondu kenorb 2017-08-18 09:50:49

Fusion Araxis http://www.araxis.com / Je L'utilise sur Mac OS X mais je l'ai utilisé sur windows... ce n'est pas gratuit... mais il a quelques fonctionnalités intéressantes... plus agréable sur windows.

11
répondu Clintm 2016-07-08 18:25:01

si vous êtes à la recherche d'un outil diff au-delà de comparer est assez agréable: http://www.scootersoftware.com/moreinfo.php

7
répondu Nathan Feger 2008-09-26 01:50:40

Vous pouvez changer l'outil utilisé par git mergetool en passant git mergetool -t=<tool> ou --tool=<tool> . Pour changer la valeur par défaut (à partir de vimdiff), utilisez git config merge.tool <tool> .

7
répondu user35149 2008-11-18 16:49:52

IntelliJ IDEA a un système sophistiqué fusionner la résolution des conflits de l'outil avec la volonté de baguette magique, ce qui simplifie grandement la fusion:

Source: https://blog.jetbrains.com/dotnet/2017/03/13/rider-eap-update-version-control-database-editor-improvements/

7
répondu niutech 2017-05-29 20:49:54

vous pouvez installer ECMerge diff/merge tool sur votre Linux, Mac ou Windows. Il est préconfiguré en Git, donc utiliser git mergetool suffira.

1
répondu Armel 2012-12-13 07:02:54

j'ai essayé beaucoup des outils mentionnés ici, et aucun d'eux n'a été à ce que je cherche.

personnellement, j'ai trouvé Atom comme un grand outil pour visualiser les différences et la résolution/fusion de conflits.

pour ce qui est de la fusion, il n'y a pas trois vues, mais tout est combiné en une seule avec une mise en évidence colorée pour chaque version. Vous pouvez modifier le code directement ou il y a des boutons pour utiliser n'importe quelle version de ce morceau de code que vous voulez.

Je ne l'utilise même plus comme éditeur ou IDE, juste pour travailler avec git. UI propre et très simple, en plus il est hautement personnalisable.

Et c'est gratuit bien sûr.

1
répondu Sean McCallum 2017-09-30 06:09:24

j'utilise différents outils pour fusionner et comparer:

git config --global diff.tool diffuse
git config --global merge.tool kdiff3

poing pourrait être appelé par:

git difftool [BRANCH] -- [FILE or DIR]

Second est appelé lorsque vous utilisez git mergetool .

1
répondu ephemerr 2017-12-01 11:47:11

si vous utilisez visual studio , Team Explorer outil intégré est un très bel outil pour résoudre les conflits de fusion git.

0
répondu Charith 2017-06-16 13:47:39

donc pour la fusion git, vous pouvez essayer:

  • DiffMerge pour comparer visuellement et fusionner des fichiers sous Windows, OS X et Linux.

    DiffMerge

  • Meld , est une diff visuelle et un outil de fusion.

    Meld is a visual diff and merge tool

  • KDiff3 , un programme diff et de fusion), qui compare ou fusionne 2 ou 3 fichiers d'entrée de texte/dirs.
  • opendiff (partie des outils Xcode sur macOS), un utilitaire de ligne de commande qui lance L'application FileMerge à partir du Terminal pour Comparer graphiquement des fichiers ou des répertoires, y compris Fusion .
0
répondu kenorb 2017-08-18 10:00:39

gitx http://gitx.frim.nl/

quelques bugs lors du travail avec de grands ensembles de propagation, mais excellent pour parcourir les changements et choisir différents changements à l'étape puis à la propagation.

-1
répondu Blake Lucchesi 2009-09-01 00:18:51