什么是Git最好的可视合并工具?
在Git中查看和编辑合并的最佳工具是什么?我想要一个三向合并视图,在单独的面板中有" mine"," theirs"和" ancestor",以及第四个" output"面板。
同样,调用该工具的说明也很棒。 (我仍然没有弄清楚如何以不给我错误的方式启动kdiff3. )
我的操作系统是Ubuntu。
解决方案
我最喜欢的视觉合并工具是SourceGear DiffMerge
- 这是免费的。
- 跨平台(Windows,OS X和Linux)。
- 干净的视觉用户界面
- 我们期望的所有差异功能(差异,合并,文件夹差异)。
- 命令行界面。
- 可用的键盘快捷键。
Meld是差异/合并工具。
这是在以下位置进行安装的方法:
- 的Ubuntu
- 苹果电脑
- Windows:"推荐的Windows Meld版本是最新版本,可以从http://meldmerge.org作为MSI获得"
我听到了有关kdiff3的好消息。
如果我们只是在寻找一个比较工具而不是比较工具,那就很好了:http://www.scootersoftware.com/moreinfo.php
我们可以通过传递git mergetool -t = <tool>或者--tool = <tool>来更改git mergetool使用的工具。要更改默认值(来自vimdiff),请使用git config merge.tool <tool>。
漫反射是我的最爱,但我当然有偏见。 :-) 这是非常容易使用:
$ diffuse "mine" "output" "theirs"
Diffuse is a small and simple text merge tool written in Python. With Diffuse, you can easily merge, edit, and review changes to your code. Diffuse is free software.
gitx http://gitx.frim.nl/
使用大型提交集时会出现一些错误,但是非常适合浏览更改并选择不同的更改进行暂存然后提交。
我们可以尝试P4Merge。
Visualize the differences between file versions with P4Merge. Resolve conflicts that result from parallel or concurrent development via color coding.
功能包括:
- 突出显示和编辑文本文件差异
- 选择包含或者忽略行尾或者空格
- 识别Windows(CRLF),Mac(CR)和Unix(LF)的行尾约定
- 使用命令行参数并从非Perforce应用程序启动
- 比较和合并文件时显示行号
- 排除已修改,唯一或者未更改的文件
- 按名称或者扩展名过滤文件
- 以熟悉的文件/文件夹层次结构组织修改后的资产
- 比较JPEG,GIF,TIFF,BMP和其他文件格式
- 使用Qt API扩展
- 叠加图像或者并排显示
- 突出显示重叠图像上的差异
我们可以配置自己的合并工具,使其与"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
"的difftool:
git config --global diff.tool p4merge git config --global difftool.p4merge.cmd p4merge '$LOCAL $REMOTE'
请注意,在Unix / Linux中,我们不希望shell将$ BASE解析为变量,它实际上应该出现在〜/ .gitconfig文件中才能起作用。
Araxis合并http://www.araxis.com/
我在Mac OS X上使用了它,但在Windows上使用了它。它不是免费的。但是它具有一些不错的功能。
我们可以在Linux,Mac或者Windows上安装ECMerge差异/合并工具。它是在Git中预先配置的,因此只需使用git mergetool
即可完成。
我最喜欢的Beyond Compare 3在Pro版本中具有合并功能。合并的好处在于,它可以让我们查看所有4个视图:基本,左,右和合并结果。它的视觉效果比P4V差一些,但比WinDiff多得多。它与许多源代码控制集成在一起,并且可以在Windows / Linux上运行。它具有许多功能,例如高级规则,版本,手动对齐...
Perforce Visual Client(P4V)是一个免费工具,它提供了最明确的合并界面之一(请参见一些屏幕截图)。适用于所有主要平台。我对该工具的主要失望之处在于它的"只读"界面。我们不能手动编辑文件,也不能手动对齐。
PS:P4Merge包含在P4V中。 Perforce试图在没有客户的情况下很难获得他们的工具。
SourceGear差异/合并可能是我的第二个免费工具选择。检查合并屏幕截图,我们将看到它至少具有3个视图。
Meld是一个较新的免费工具,我更喜欢SourceGear Diff / Merge:现在,它还可以在大多数平台(Windows / Linux / Mac)上运行,并具有原生支持某些源代码控制(如Git)的明显优势。因此,我们可以使所有文件的历史记录差异变得更加简单。合并视图(请参见屏幕截图)只有3个窗格,就像SourceGear Diff / Merge一样。这使得在复杂的情况下合并变得有些困难。
PS:如果一天有一个工具支持5个视图合并,那真是太棒了,因为如果我们在Git中进行小巧的提交,则我们实际上并没有一个基础,而是两个基础。两个基本,两个更改以及一个结果合并。
维姆迪夫
一旦学习了vim(并且应该学会恕我直言),vimdiff就是一个更美丽的正交概念。要获得vim的在线帮助,请执行以下操作:
:help vimdiff
如果我们陷于鼠标使用的黑暗时代,并且要合并的文件不是很大,我建议我们合并。