在 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 配置合并工具的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 10 上为 python 安装 Dlib 时出错
在 Windows 10 上为 GitHub 启用多个 SSH 密钥