繁体   English   中英

Git 最好的可视化合并工具是什么? [关闭]

[英]What's the best visual merge tool for Git? [closed]

在 Git 中查看和编辑合并的最佳工具是什么? 我想获得一个三向合并视图,在单独的面板中包含“我的”、“他们的”和“祖先”,以及第四个“输出”面板。

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

我的操作系统是 Ubuntu。

Meld是一个免费、开源和跨平台(UNIX/Linux、OSX、Windows)的差异/合并工具。

安装方法如下:

您可以配置自己的合并工具以与“ 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 解析为变量 - 它实际上应该出现在您的 ~/.gitconfig 文件中才能正常工作。

我最喜欢的Beyond Compare 3专业版中具有 合并功能。 合并的好处是它可以让您看到所有 4 个视图:基本视图、左视图、右视图和合并结果。 它的视觉效果比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 中挑选提交,你真的没有一个基础而是两个。 两个基础,两个变化,一个结果合并。

我听说 kdiff3 的好消息。

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

  • 这是免费的。
  • 跨平台(Windows、OS X 和 Linux)。
  • 干净的视觉用户界面
  • 您期望的所有差异功能(差异、合并、文件夹差异)。
  • 命令行界面。
  • 可用的键盘快捷键。

用户界面

vimdiff

一旦你学会了 vim(恕我直言,你应该学会),vimdiff 只是一个更漂亮的小正交概念来学习。 在 vim 中获取在线帮助:

:help vimdiff 

这个问题涵盖了如何使用它: How do I use vimdiff to resolve a conflict?

在此处输入图片说明

如果您陷入使用鼠标的黑暗时代,并且您要合并的文件不是很大,我建议您使用 meld。

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

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

你可以试试P4Merge

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

功能包括:

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

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

$ diffuse "mine" "output" "theirs"

Diffuse 是一个用 Python 编写的小而简单的文本合并工具。 使用 Diffuse,您可以轻松合并、编辑和审查对代码的更改。 Diffuse 是免费软件。

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

如果您只是在寻找一种无法比较的差异工具,那就太好了: http : //www.scootersoftware.com/moreinfo.php

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

所以对于 git merge,你可以尝试:

  • DiffMerge在 Windows、OS X 和 Linux 上直观地比较和合并文件。

    差异合并

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

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

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

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

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

至于合并,没有三个视图,但它们都合并为一个,每个版本都有彩色突出显示。 您可以直接编辑代码,也可以使用按钮来使用您想要的任何版本的代码片段。

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

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

    • 我还建议使用项目管理器作为在项目之间导航而无需填充树视图的一种非常方便的方式。
  • 我遇到的唯一问题是刷新——当使用大型存储库时,Atom 更新您在它之外所做的更改可能很慢。 我总是在完成后关闭它,然后在我想再次查看我的更改/提交时重新打开它。 您还可以使用 ctrl+shift+f5 重新加载窗口,这只需一秒钟。

而且它当然是免费的。

如果您使用Visual Studio ,Team Explorer 内置工具是解决 git 合并冲突的非常好的工具。

我使用不同的工具进行合并和比较:

git config --global diff.tool diffuse
git config --global merge.tool kdiff3

首先可以通过以下方式调用:

git difftool [BRANCH] -- [FILE or DIR]

当您使用git mergetool时调用第二个。

您可以在 Linux、Mac 或 Windows 上安装ECMerge diff/merge 工具 它已在 Git 中预先配置,因此只需使用git mergetool完成这项工作。

gitx http://gitx.frim.nl/

处理大型提交集时存在一些错误,但非常适合浏览更改并选择不同的更改进行暂存然后提交。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM