什么是Git最好的可视化合并工具?

什么是在Git中查看和编辑合并的最佳工具? 我想要在单独的面板中使用“我的”,“他们的”和“祖先”,以及第四个“输出”面板。

另外,用于调用所述工具的指令会很好。 (我还没有弄清楚如何启动kdiff3的方式,它不会给我一个错误。)

我的操作系统是Ubuntu。

Meld是一个很好的差异/合并工具。

以下是如何安装它:

你可以configuration你自己的合并工具来与“ git mergetool ”一起使用。

例:

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

当你在这个时候,你也可以把它设置为你的“ git difftool ”的git difftool

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

请注意,在Unix / Linux中,你不希望$BASE作为你的shell的variables被parsing – 它实际上应该出现在你的〜/ .gitconfig文件中。

除了比较3 ,我最喜欢的,在专业版中有合并function。 合并的好处是,它让你看到所有4个视图:基,左,右,和合并的结果。 它的视觉效果不如P4V,但比WinDiff更好。 它集成了许多源代码控制,并在Windows / Linux上工作。 它有许多function,如高级规则,版本,手动alignment…

Perforce Visual ClientP4V )是一个免费工具,提供了最明确的合并界面之一(请参阅一些屏幕截图 )。 适用于所有主要平台。 我对这个工具主要的不满意是它的“只读”接口 。 您不能手动编辑文件,也不能手动alignment。

PS:P4Merge包含在P4V中。 Perforce试图让他们在没有客户端的情况下获得他们的工具有点困难。

SourceGear差异/合并可能是我第二个免费的工具select。 检查合并屏幕截图 ,你会看到它至less有3个视图。


Meld是一个更新的免费工具,我更喜欢SourceGear Diff / Merge :现在它也可以在大多数平台(Windows / Linux / Mac)上工作,具有原生支持Git等源代码控制的独特优势。 所以你可以在所有文件上有一些历史比较简单的东西。 合并视图(见截图 )只有3个窗格,就像SourceGear Diff / Merge一样 。 这使得在复杂情况下合并有点困难。

PS:如果有一天某个工具支持5个视图合并 ,这真的是太棒了,因为如果你在Git中挑选提交,那么你确实没有一个基础,而是两个。 两个基地,两个变化,一个合并。

我最喜欢的可视化合并工具是SourceGear DiffMerge

  • 这是免费的。
  • 跨平台(Windows,OS X和Linux)。
  • 清理可视化界面
  • 您所期望的所有差异function(差异,合并,文件夹差异)。
  • 命令行界面。
  • 可用的键盘快捷键。

用户界面

我听到关于kdiff3的好消息,好像是在这个和meld之间(这是另一张海报已经提出的)。

vimdiff同时

一旦你已经学会了vim(和恕我直言,你应该),vimdiff只是一个更美丽的小正交的学习理念。 在vim中获得在线帮助:

 :help vimdiff 

如果你在鼠标使用的黑暗时代陷入困境,并且你正在合并的文件不是很大,我build议融合。

你可以试试P4Merge 。

用P4Merge可视化文件版本之间的差异。 通过颜色编码解决由于并行或并发开发引起的冲突。

这些function包括:

  • 突出显示和编辑文本文件差异
  • select包含或忽略行结尾或空格
  • 识别Windows(CRLF),Mac(CR)和Unix(LF)的行结束约定,
  • 使用命令行参数并从非Perforce应用程序启动
  • 比较和合并文件时显示行号
  • 排除已修改,唯一或未更改的文件
  • 按名称或扩展名筛选文件
  • 在熟悉的文件/文件夹层次结构中组织修改的资产
  • 比较JPEG,GIF,TIFF,BMP和其他文件格式
  • 扩展使用Qt API
  • 叠加图像或并排显示
  • 突出显示叠加图像的差异

弥漫是我最喜欢的,但当然我是有偏见的。 :-) 这是非常容易使用:

 $ diffuse "mine" "output" "theirs" 

Diffuse是一个用Python编写的小而简单的文本合并工具。 借助漫射,您可以轻松地合并,编辑和查看对代码的更改。 弥漫是自由软件。

Araxis合并http://www.araxis.com/我在Mac OS X上使用它,但我用它在Windows上…它不是免费的…但它有一些不错的function…更好的Windows虽然。

如果你只是寻找一个比较工具,比较是相当不错的: http : //www.scootersoftware.com/moreinfo.php

您可以通过传递git mergetool -t=<tool>--tool=<tool>来更改git mergetool使用的--tool=<tool> 。 要更改默认值(从vimdiff),请使用git config merge.tool <tool>

IntelliJ IDEA拥有Resolve魔棒的复杂的合并冲突解决工具 ,大大简化了合并:

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

您可以在Linux,Mac或Windows上安装ECMerge diff / merge工具 。 它是在Git中预先configuration的,所以只需使用git mergetool就可以完成这项工作。

我已经尝试了很多这里提到的工具,没有一个是我正在寻找的。

就我个人而言,我发现Atom是一个可视化差异和冲突解决/合并的好工具。

至于合并,没有三个视图,但它们全部组合成每个版本都带有颜色突出显示的视图。 你可以直接编辑代码,或者有button来使用你想要的代码片段。

我甚至不用它作为编辑器或IDE,只是为了使用git。 干净的用户界面,非常直接,而且它是高度可定制的。

  • 你可以从命令行启动它,并传入一个你想要打开的文件,或者添加你的​​项目文件夹(git repo)。

    • 我还build议项目经理作为一个非常方便的方式来导航项目之间没有填满你的树视图。
  • 我唯一的问题是刷新 – 在处理大型库时,primefaces可能会很慢,以便更新所做的更改。 当我完成时,我总是closures它,然后重新打开,当我想再次查看我的更改/提交。 你也可以用ctrl + shift + f5重新加载窗口,这只需要一秒钟。

这当然是免费的。

如果你使用visual studio ,Team Explorer内build工具是解决git合并冲突的一个非常好的工具。

所以对于git合并,你可以尝试:

  • DiffMerge可视化比较和合并Windows,OS X和Linux上的文件。

    DiffMerge

  • Meld是一个视觉差异和合并工具。

    Meld是一个视觉差异和合并工具

  • KDiff3 ,一个差异和合并程序),比较或合并2或3个文本input文件/目录。
  • opendiff (macOS上的Xcode工具的一部分),一个命令行实用程序,从terminal启动FileMerge应用程序以graphics方式比较文件或目录,包括合并 。

gitx http://gitx.frim.nl/

在处理较大的提交集合时出现一些错误,但是对于浏览更改以及对stage执行不同的更改,然后进行提交非常有用。