在Git中查看和编辑合并的最佳工具是什么? 我想得到一个3向合并视图,在单独的面板中有“我的”,“他们的”和“祖先”,以及第四个“输出”面板。
此外,调用所述工具的说明也很棒。 (我仍然没有弄清楚如何以这样的方式启动kdiff3,它不会给我一个错误。)
我的操作系统是Ubuntu。
#1楼
gitx http://gitx.frim.nl/
使用大型提交集时会出现一些错误,但非常适合浏览更改并选择不同的更改进行分段然后提交。
#2楼
你可以试试P4Merge 。
使用P4Merge可视化文件版本之间的差异。 通过颜色编码解决由并行或并发开发引起的冲突。
功能包括:
- 突出显示和编辑文本文件差异
- 选择包括或忽略行结尾或空格
- 识别Windows(CRLF),Mac(CR)和Unix(LF)的行结束约定
- 使用命令行参数并从非Perforce应用程序启动
- 比较和合并文件时显示行号
- 排除已修改,唯一或未更改的文件
- 按名称或扩展名过滤文件
- 在熟悉的文件/文件夹层次结构中组织修改的资产
- 比较JPEG,GIF,TIFF,BMP和其他文件格式
- 使用Qt API扩展
- 叠加图像或并排显示
- 突出显示重叠图像的差异
#3楼
我最喜欢的视觉合并工具是SourceGear DiffMerge
- 这是免费的。
- 跨平台(Windows,OS X和Linux)。
- 清洁可视UI
- 您期望的所有差异功能(Diff,Merge,Folder Diff)。
- 命令行界面。
- 可用的键盘快捷键。
#4楼
Meld是差异/合并工具。
以下是如何安装它:
- Ubuntu的
- 苹果电脑
- Windows :“推荐的Meld for Windows版本是最新版本,可从http://meldmerge.org以MSI的形式获得”
#5楼
我听到有关kdiff3的好消息。
#6楼
如果你只是在寻找一个超越比较的差异工具,那就太好了: http : //www.scootersoftware.com/moreinfo.php
#7楼
您可以配置自己的合并工具以与“ 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中,您不希望shell将$BASE
解析为变量 - 它应该实际出现在〜/ .gitconfig文件中以使其工作。
#8楼
Araxis Merge http://www.araxis.com/merge我在Mac OS X上使用它但我在Windows上使用它...它不是免费的...但它有一些不错的功能 ......更好虽然窗户。
#9楼
您可以通过传递git mergetool -t=<tool>
或--tool=<tool>
来更改git mergetool使用的--tool=<tool>
。 要更改默认值(从vimdiff),请使用git config merge.tool <tool>
。
#10楼
弥漫是我的最爱,但当然我有偏见。 :-) 这是非常容易使用:
$ diffuse "mine" "output" "theirs"
Diffuse是一个用Python编写的小而简单的文本合并工具。 使用漫反射,您可以轻松地合并,编辑和查看代码更改。 漫反射是免费软件。
#11楼
您可以在Linux,Mac或Windows上安装ECMerge diff / merge工具 。 它是在Git中预先配置的,所以只需使用git mergetool
完成这项工作。
#12楼
超越比较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中挑选提交你真的没有一个基础而是两个。 两个基础,两个更改,一个合并。
#13楼
vimdiff同时
一旦你学会了vim(和你应该的恕我直言),vimdiff只是一个更美丽的小正交概念来学习。 要获得vim的在线帮助:
:help vimdiff
这个问题涵盖了如何使用它: 如何使用vimdiff解决冲突?
如果你在鼠标使用的黑暗时代陷入困境,并且你合并的文件不是很大,我推荐meld。
#14楼
IntelliJ IDEA具有复杂的合并冲突解决工具和Resolve魔棒,极大地简化了合并:
#15楼
如果您使用visual studio ,Team Explorer内置工具是解决git合并冲突的一个非常好的工具。
#16楼
所以对于git merge,你可以尝试:
DiffMerge可在Windows,OS X和Linux上直观地比较和合并文件。
Meld ,是一个视觉差异和合并工具。
- KDiff3 ,一个差异和合并程序),它比较或合并2或3个文本输入文件/目录。
-
opendiff
(macOS上的Xcode Tools的一部分),一个命令行实用程序,它从终端启动FileMerge应用程序,以图形方式比较文件或目录,包括合并 。
#17楼
我已经尝试了很多这里提到的工具,但没有一个是我正在寻找的。
就个人而言,我发现Atom是一个可视化差异和冲突解决/合并的好工具。
至于合并,没有三个视图,但它们全部合并为一个,每个版本都带有彩色突出显示。 您可以直接编辑代码,也可以使用按钮来使用您想要的任何版本的代码段。
我甚至不再使用它作为编辑器或IDE,只是为了使用git。 清洁用户界面,非常直接,而且可以高度自定义。
您可以从命令行启动它并传入要打开的单个文件,或添加项目文件夹(git repo)。
- 我还建议使用项目管理器作为在项目之间导航而不填满树视图的非常方便的方法。
我唯一的问题是刷新 - 当处理大型存储库时,原子可能很慢,无法更新您在其外部所做的更改。 我只是在我完成时总是关闭它,然后当我想再次查看我的更改/提交时重新打开它。 您也可以使用ctrl + shift + f5重新加载窗口,这只需要一秒钟。
它当然是免费的。
#18楼
我使用不同的工具进行合并和比较:
git config --global diff.tool diffuse
git config --global merge.tool kdiff3
拳头可以通过以下方式调用:
git difftool [BRANCH] -- [FILE or DIR]
第二个是在使用git mergetool
时调用的。