在 Windows10 上为 GitKraken 配置合并工具

Posted

技术标签:

【中文标题】在 Windows10 上为 GitKraken 配置合并工具【英文标题】:Configure a merge tool for GitKraken on Windows10 【发布时间】:2016-08-08 14:54:21 【问题描述】:

我下载了 GitKraken 以使用 Git 存储库,它非常适合我需要的一切,但我无法将其配置为使用 WinMerge 或 Meld 等合并工具。

当程序发现冲突时,它会显示一个按钮,上面写着“在合并工具中打开”。由于我还没有配置合并工具,因此我查看了 GitKraken 的首选项并查看了“合并工具”部分。那里选择了“Git Config Default”选项,我只能选择“None”或“Git Config Default”选项。

我安装了 Meld 以便将它与 GitKraken 一起使用,之后我尝试关注 these steps 以使其在 GitKraken 的界面中可用,但 GitKraken 的合并工具选择选项没有改变。

在这些步骤中运行了一些命令并尝试其他一些命令使其正常工作后,我的 .gitconfig 文件如下所示:

[user]
    name = <myname>
    email = <mymail>
[filter "lfs"]
[filter "lfs"]
    clean = git-lfs clean %f
    smudge = git-lfs smudge %f
    required = true
[core]
    autocrlf = true
    excludesfile = C:\\Users\\<myuser>\\Documents\\gitignore_global.txt
[merge]
    tool = meld
[mergetool "meld"]
    path = C:\\Program files (x86)\\Meld\\Meld.exe
[mergetool]
    prompt = false

我不太确定我做了什么以及如何让它发挥作用...有人可以帮忙吗?

【问题讨论】:

我安装了 KDiff3 并且 GitKraken 在没有进一步配置的情况下检测到它。我用了一点,它对我有用,所以我的问题解决了。无论如何,我把这个问题留在这里,以防有人可以回答它并帮助其他人。 当您指定 meld 默认合并工具时(正如您在所示的 gitconfig 中所做的那样,在 merge.tool 设置中),当您将“Git Config Default”指定为GitKraken 中的合并工具?因为那是应该发生的事情。我想 GitKraken 中的设置与配置的 Git 合并工具是分开的,而且 GitKraken 目前只支持一些开箱即用的特定工具。 【参考方案1】:

GitKraken 终于增加了对选择.gitconfig 文件中列出的合并工具之一的支持。

【讨论】:

好消息! 如何让 GitKraken 查看其他合并工具?我安装了统一合并工具,但它不在 GitKraken 的列表中。 这似乎是一个硬编码列表,不支持您在.gitconfig 中放入的任何合并工具。从app.asar 来看,从 3.0.1 版开始,GitKraken 仅支持以下内容:Beyond Compare、FileMerge、Kaleidoscope 和 KDiff。 “Git Config Default”选项似乎仍然被破坏。 你如何让 GitKraken 看到 Beyond Compare?它已安装,SourceTree 看到它,git mergetool 看到它,但 GitKraken 没有将其列为选项。【参考方案2】:

GitKraken 和 Windows 10 的唯一解决方案,我可以使用:

文件名:C:\Users\my-name\.gitconfig

内容:

[user]
    email = bart@kassaku.nl
    name = Bart Houkes
[merge]
    tool = meld
[mergetool "meld"]
    path = C:/Program Files (x86)/Meld/Meld.exe
    cmd = \"C:/Program Files (x86)/Meld/Meld.exe\" --diff \"$BASE\" \"$LOCAL\" \"$REMOTE\" --output \"$MERGED\"

【讨论】:

【参考方案3】:

目前看来,GitKraken 并不完全支持所有使用git-config 配置的合并工具。

在对one of Axosoft’s blog posts 的关于 GitKraken 的评论中,对此进行了讨论:

一位用户 (2016 年 2 月 29 日)

使用合并工具时有什么消息吗?这还没有丢失还是只是被窃听了?我已经在 git global 中配置了一个可以工作的合并工具,它可以从控制台调用它,但是 gitkraken 在单击“在合并工具中打开”时什么也不做,甚至没有错误消息。


James(模组)(2016 年 3 月 3 日)

存在无法找到合并工具集的已知问题,这将在即将到来的更新中解决!

(由于某种原因,该博客上的 Disqus 插件现在无法正确加载,因此您看不到这些 cmets。我必须查看 Google 的缓存版本才能看到)

因此,您似乎必须等到 GitKraken 的未来更新才能支持 meld 或其他合并工具(我还在我的机器上测试了 Beyond Compare)。如果 KDiff3 适合你,那我猜你很幸运,你可以暂时使用它。

【讨论】:

【参考方案4】:

我在 ubuntu 上遇到了与 gitkraken 外部工具相同的问题。 我通过符号链接 kdiff3 解决了这个问题,它指向 meld 二进制文件。 gitkraken 支持 kdiff3。

也许它会在 Windows 上以相同的方式工作。尝试将 meld.exe 重命名为 kdiff3.exe 或创建快捷方式并添加到 PATH。 马辛

【讨论】:

【参考方案5】:

对于 Linux 上的 meld:

[merge]
    tool = meld

[mergetool]
    keepBackup = false

[mergetool "meld"]
    path = /usr/bin/meld
    cmd = '/usr/bin/meld' --diff $BASE $LOCAL $REMOTE --output $MERGED
    trustExitCode = false

【讨论】:

你好,没见过keepBackup选项,你能解释一下效果,以及你添加它的原因吗? 来自here: After performing a merge, the original file with conflict markers can be saved as a file with a .orig extension. If this variable is set to false then this file is not preserved. Defaults to true (i.e. keep the backup files).【参考方案6】:

我遇到了同样的问题。在 .gitconfig 中试试这个

[merge]
    tool = meld
[mergetool "meld"]
    cmd = "C:\\\\Program Files (x86)\\\\Meld\\\\Meld"

干杯

【讨论】:

在上次更新中,GitKraken 团队将他们自己的合并工具添加到应用程序中,所以我切换到它,但感谢您的建议!如果 GitKraken 自己的合并工具变得不那么有用,我会使用它 GitKraken 的应用内合并工具不允许您在合并之前编辑代码,而 kdiff3 可以。我的 2c @Kunal 如果您升级到 Pro 版本,它会(现在)。 他们的工具甚至不做内联更改突出显示,是的,它适用于付费版本。【参考方案7】:

对于 diffmerge 的用户,我的 ~/.gitconfig 中的这个添加对我有用:

[merge]
tool = diffmerge
[mergetool "diffmerge"]
path = /usr/bin/diffmerge
cmd = /usr/bin/diffmerge \"$LOCAL\" \"$BASE\" \"$REMOTE\" -result \"$MERGED\"

【讨论】:

【参考方案8】:

只是想更新一些... 就我而言,我安装了 KDiff3、Beyond Compare & Meld 并重新启动了我的窗口 10。但我仍然没有在下拉框中得到选项。 但我意识到我实际上安装到了我的 Z 驱动器(这是我用于编程工具的 SSD 驱动器)。

So I tried to remove and install back (KDiff3) to the default path C:\Program Files\KDiff3

你猜怎么着?我终于把它放到了下拉列表中。 我没有尝试其他 2 个,但我想当您安装到(也许)另一个驱动器或路径时可能会发生这种情况。

【讨论】:

以上是关于在 Windows10 上为 GitKraken 配置合并工具的主要内容,如果未能解决你的问题,请参考以下文章

Gitkraken 与 SSH 到 Gitlab

在桌面上为 Windows 10 UWP 应用设置窗口大小

在 Windows 10 上为 python 安装 Dlib 时出错

在 Windows 10 上为 GitHub 启用多个 SSH 密钥

在 Windows 10 上为 Qt 构建 WMF(Windows Media Foundation)媒体驱动程序插件

我尝试在 Windows 10 上为 python 3.8.1 安装 kivy,但出现此错误 [重复]