当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《什么是Git最好的视觉合并工具?》经验,为你挑选了12个好方法。

在Git中查看和编辑合并的最佳工具是什么?我想得到一个3向合并视图,在单独的面板中有"我的","他们的"和"祖先",以及第四个"输出"面板.

此外,调用所述工具的说明也很棒.(我仍然没有弄清楚如何以这样的方式启动kdiff3,它不会给我一个错误.)

我的操作系统是Ubuntu.



1> user20805..:

Meld是差异/合并工具.

以下是如何安装它:

Ubuntu的

苹果电脑

Windows:"推荐的Meld for Windows版本是最新版本,可从http://meldmerge.org以MSI的形式获得"


谁关心原作者正在使用的操作系统?,这个问题足以引起所有寻找它的人的兴趣.当你真正看到4个窗格进行测试时,三向差异就是这样; 合并基/本地/远程/结果
`meld`对于复杂的差异很繁琐,能够选择像'为所有未解决的冲突选择b'这样的选项比在'meld`中手动点击每个块的正确箭头要好得多.此外,能够合并到特定的输出文件而不是编辑输入文件对于退出失败的神经来说是非常宝贵的.
kdiff3让你看到4个视图,meld只允许3个视图.Meld不是一个真正的合并工具,它是一个diff工具,因为它没有显示基本版本视图.
@naxa Meld现在有一个Windows安装程序:https://code.google.com/p/meld-installer/
梅尔德很可怕,特别是对于合并.它没有选择"自动转移非冲突的变化",使每次合并都非常痛苦.
现在有一个meld windows安装程序(截至至少1.8).转到他们的网站,他们有Sourceforge的链接.谷歌代码是否会移动,谁知道会发生什么.因此,请检查其网站上的链接.
梅尔德有一些问题.做"Mine then theirs"改变真的很烦人.而且有时难以阅读.

2> Evgeny..:

您可以配置自己的合并工具以与" 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中,您不希望$BASEshell将其解析为变量 - 它实际上应该出现在〜/ .gitconfig文件中以使其工作.


请注意,由于p4merge(现在)是官方支持的git mergetools之一,因此不再需要使用*tool.*.cmd变量.
确保使用正确的报价单:http://stackoverflow.com/a/1217994/3543437

3> Wernight..:

超越比较3,我最喜欢的,在 Pro版本中有一个合并功能.合并的好处是它可以让你看到所有4个视图:base,left,right和merged result.它的视觉效果不如 P4V,但比WinDiff更多.它集成了许多源代码控制,可在Windows/Linux上运行.它有许多功能,如高级规则,版本,手动对齐......

Perforce Visual Client(P4V)是一个免费工具,它提供了一个最明确的合并界面(参见一些截图).适用于所有主要平台.我对该工具的主要不满是它的 "只读"界面.您无法手动编辑文件,也无法手动对齐.

PS:P4Merge包含在P4V中.Perforce试图让没有客户的工具变得有点困难.

SourceGear Diff/Merge可能是我的第二个免费工具选择.检查合并屏幕拍摄,你会发现它至少有3个视图.


Meld是一个更新的免费工具,我更喜欢 SourceGear Diff/Merge:现在它也适用于大多数平台(Windows/Linux/Mac),具有本机支持某些源代码控制(如 Git)的独特优势.因此,您可以在所有文件上使用更简单的历史差异.合并视图(参见屏幕截图)只有3个窗格,就像 SourceGear Diff/Merge一样.这使得在复杂情况下合并更加困难.

PS:如果有一天工具支持5个视图合并,这真的很棒,因为如果你在Git中挑选提交你真的没有一个基础而是两个.两个基础,两个更改,一个合并.


Perforce Merge很棒.它有一个4窗格合并工具,它真的有帮助:你的,他们的,共同基础,新的
您可以自定安装P4Merge而不需要其余的perforce.
最新版本的p4merge没有"只读"界面.您可以在下部窗格中编辑合并文件.
P4 [也被谷歌使用](http://www.quora.com/What-version-control-system-does-Google-use-and-why).

4> Luke..:

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

这是免费的.

跨平台(Windows,OS X和Linux).

清洁可视UI

您期望的所有差异功能(Diff,Merge,Folder Diff).

命令行界面.

可用的键盘快捷键.

用户界面


你如何配置它与git一起工作?
@Kyralessa见http://stackoverflow.com/questions/255202/how-do-i-view-git-diff-output-with-visual-diff-program
谢谢你把它介绍给我!! :D这个工具很干净,安装和使用的时间比meld少.我花了半个小时试图安装meld.但是这个我在5分钟内做了!!
注意:diffmerge似乎没有3向合并功能.因为这个原因,我试了几个星期后就放弃了它

5> 小智..:

我听到有关kdiff3的好消息.


+1:kdiff3远远优于meld,并且git本身也支持.
`kdiff3`有更多的功能,但`meld`有更好的UI.在我看来,`meld`对于简单合并更好,其中`meld`提供的功能就足够了.记得也试试`diffuse`.

6> Andrew Wagne..:

vimdiff同时

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

:help vimdiff 

如果你在鼠标使用的黑暗时代陷入困境,并且你合并的文件不是很大,我推荐meld.


使用Fugitive插件可以更轻松!http://vimcasts.org/episodes/fugitive-vim-resolving-merge-conflicts-with-vimdiff/

7> Ron..:

你可以试试P4Merge.

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

功能包括:

突出显示和编辑文本文件差异

选择包括或忽略行结尾或空格

识别Windows(CRLF),Mac(CR)和Unix(LF)的行结束约定

使用命令行参数并从非Perforce应用程序启动

比较和合并文件时显示行号

排除已修改,唯一或未更改的文件

按名称或扩展名过滤文件

在熟悉的文件/文件夹层次结构中组织修改的资产

比较JPEG,GIF,TIFF,BMP和其他文件格式

使用Qt API扩展

叠加图像或并排显示

突出显示重叠图像的差异



8> niutech..:

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

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



9> 小智..:

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

$ diffuse "mine" "output" "theirs"

Diffuse是一个用Python编写的小而简单的文本合并工具.使用漫反射,您可以轻松地合并,编辑和查看代码更改.漫反射是免费软件.


我真的很喜欢分散,而且我没有偏见。
@Derrick Moser:`diffuse`看起来很漂亮.我现在只是尝试了它,它比`kdiff3`做得更好.但是,我正在尝试将它与`git mergetool`一起使用,它会打开彼此相邻的4个文件(本地,合并结果,远程,基本),而我的屏幕还不够广泛.我不得不做很多水平滚动.kdiff3只显示3彼此相邻,结果显示在窗口的下半部分.

10> Clintm..:

Araxis Merge http://www.araxis.com/merge 我在Mac OS X上使用它但我在Windows上使用它...它不是免费的...但它有一些不错的功能 ......更好虽然窗户.



11> Nathan Feger..:

如果你只是在寻找一个超越比较的差异工具,那就太好了:http://www.scootersoftware.com/moreinfo.php



12> user35149..:

您可以通过传递git mergetool -t=或更改git mergetool使用的工具--tool=.要更改默认值(来自vimdiff),请使用git config merge.tool .

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有