【问题标题】:Git Extensions and Meld mergeGit 扩展和 Meld 合并
【发布时间】:2013-07-19 09:50:05
【问题描述】:

在 Windows 上使用 Git Extensions 时是否可以使用 Meld 作为合并工具?

【问题讨论】:

    标签: git-extensions meld mergetool


    【解决方案1】:

    在 Git 扩展中:设置 -> Git 配置

    Merge tool: meld
    Path to mergetool: C:/Program Files (x86)/Meld/Meld.exe
    Merge tool command: "C:/Program Files (x86)/Meld/Meld.exe" --diff "$BASE" "$LOCAL" "$REMOTE" --output "$MERGED"
    

    【讨论】:

    • 这个答案不会为我保存合并的文件,git mergetool 也不是如何启动 Meld。请参阅下面的答案,它使用 git 方式启动并正确保存。
    • 我不完全清楚为什么,但是使用 --diff 标志,--output 参数似乎被忽略了。删除它会导致文件正确保存到$MERGED。 (正如其他 cmets 所建议的,这可能是 Meld 3.x 与 2.x 的问题?)
    【解决方案2】:

    是的,回复this issue

    【讨论】:

    • meld 是默认的 difftool,但不是默认的合并工具。截至 2016 年 5 月 9 日,该票仍处于开放状态
    • @cori 你是对的。我会接受 Tomasz 的回答,因为如果您正在寻找合并和差异,它会更有用。
    【解决方案3】:

    像 Thomas 一样,接受的答案对我来说不太奏效。合并关闭后合并文件未保存。但是,托马斯的回答对我也不起作用。虽然文件确实保存了,但它在 Meld 中打开并带有合并的标记。

    相反,我使用的是我一直在使用 Sourcetree 的命令行。这对我有用。

    Mergetool command = </path/to/Meld.exe> \"$LOCAL\" \"$BASE\" \"$REMOTE\" --output=\"$MERGED\" --auto-merge
    

    【讨论】:

    • --auto-merge 最后是我缺少的部分
    【解决方案4】:

    这个答案是正确的。另一个答案不会将合并结果/更改保存到您的实际工作区文件!

    在 Git 扩展中:设置 -> Git 配置

    Mergetool = meld    (just type it in, don't use the combo)
    Path to mergetool = </path/to/Meld.exe>
    Mergetool command = </path/to/Meld.exe> \"$LOCAL\" \"$BASE\" \"$REMOTE\" --output \"$MERGED\"
    

    我一直在努力让 Meld 与 GitExtensions 合作,尝试以前的答案和相关帖子。

    这是一个修改后的答案——我之前已经发布了命令行 'git mergetool' 的用法,但它没有提供与祖先的干净的 3 路合并;相反,中心窗格显示了冲突标记。

    另请参阅我在 GitExtensions feature-request 讨论此问题的 GitHub 评论。

    【讨论】:

    • 我认为这是 Meld 3.0 及更高版本的正确答案。 Meld 2.0 接受的答案没有问题,但不适用于 3.0。谢谢托马斯 W
    猜你喜欢
    • 1970-01-01
    • 2013-01-27
    • 2012-07-13
    • 2012-08-24
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多