在Git中查看和编辑合并的最佳工具是什么?我想要一个三向合并视图,在单独的面板中有“ mine”,“ theirs”和“ ancestor”,以及第四个“ output”面板。
同样,调用该工具的说明也很棒。(我仍然没有弄清楚如何以不给我错误的方式启动kdiff3。)
我的操作系统是Ubuntu。
在Git中查看和编辑合并的最佳工具是什么?我想要一个三向合并视图,在单独的面板中有“ mine”,“ theirs”和“ ancestor”,以及第四个“ output”面板。
同样,调用该工具的说明也很棒。(我仍然没有弄清楚如何以不给我错误的方式启动kdiff3。)
我的操作系统是Ubuntu。
Answers:
Meld是一个免费的开源跨平台(UNIX / Linux,OSX,Windows)差异/合并工具。
以下是安装方法:
meld
对于复杂的差异比较繁琐,能够选择诸如这样的选项chose b for all unresolved conflicts
比必须手动为中的每个大块单击正确的箭头要好得多meld
。同样,能够合并到特定的输出文件中,而不是就地编辑输入文件,对于从失败的神经中撤出是非常宝贵的。
您可以配置自己的合并工具以与“ 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中,您不希望$BASE
外壳程序将其解析为变量-实际上,它应该出现在〜/ .gitconfig文件中才能起作用。
我最喜欢的 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中选择提交,则实际上不是一个基础,而是两个基础。两个基本,两个更改以及一个结果合并。
我听到了有关kdiff3的好消息。
kdiff3
具有更多功能,但meld
UI更好。我认为,meld
对于容易进行合并的情况(它所提供的功能meld
已足够)更好。记得也尝试一下diffuse
。
我最喜欢的视觉合并工具是SourceGear DiffMerge
维姆迪夫
一旦学习了vim(并且应该学会恕我直言),vimdiff就是一个更美丽的正交概念。在vim中获得在线帮助:
:help vimdiff
这个问题涵盖了如何使用它:如何使用vimdiff解决冲突?
如果您陷于鼠标使用的黑暗时代,并且要合并的文件不是很大,我建议您合并。
您可以尝试P4Merge。
使用P4Merge可视化文件版本之间的差异。通过颜色编码解决由并行或并行开发引起的冲突。
功能包括:
IntelliJ IDEA具有一个复杂的合并冲突解决工具和Resolve魔术棒,可大大简化合并:
扩散是我的最爱,但我当然有偏见。:-) 这是非常容易使用:
$ diffuse "mine" "output" "theirs"
Diffuse是一个用Python编写的小型简单文本合并工具。使用Diffuse,您可以轻松地合并,编辑和查看对代码的更改。扩散是免费软件。
diffuse
看起来非常好。我现在尝试了,它的差异比更好kdiff3
。但是,我试图将其与之一起使用git mergetool
,它会彼此相邻打开4个文件(本地,合并结果,远程,基本),并且我的屏幕还不够宽。我不得不做很多水平滚动。kdiff3仅在彼此相邻的位置显示3,并且结果在窗口的下半部分显示。
Araxis Merge http://www.araxis.com/merge 我在Mac OS X上使用过它,但是我在Windows上使用过它……这不是免费的……但是它具有一些不错的功能 ……窗户虽然。
如果您只是在寻找一个比较工具而不是比较工具,那就很好了:http : //www.scootersoftware.com/moreinfo.php
我尝试了这里提到的许多工具,但这些工具都不是我一直在寻找的工具。
就个人而言,我发现Atom是可视化差异和解决冲突/合并的好工具。
至于合并,没有三个视图,但是每个视图都被合并为一个带有彩色突出显示的视图。您可以直接编辑代码,也可以使用按钮使用所需的那个片段的任何版本。
我什至不再使用它作为编辑器或IDE,仅用于git。简洁的用户界面,非常简单明了,而且高度可定制。
您可以从命令行启动它,并传入您要打开的单个文件,或者添加您的项目文件夹(git repo)。
我遇到的唯一问题是令人耳目一新-在使用大型存储库时,atom会很慢地更新您在其外部进行的更改。我总是总是在完成后关闭它,然后在我想再次查看更改/提交时重新打开。您也可以使用ctrl + shift + f5重新加载窗口,只需一秒钟。
而且它是免费的。
您可以在Linux,Mac或Windows上安装ECMerge差异/合并工具。它是在Git中预先配置的,因此只需使用即可git mergetool
完成工作。
gitx http://gitx.frim.nl/
使用大型提交集时会出现一些错误,但是非常适合浏览更改并选择不同的更改进行暂存然后提交。