如何在Windows上将Meld用作与Sourcetree的合并工具?

myn*_*EFF 28 meld atlassian-sourcetree

我的.gitconfig文件中有以下内容:

[user]
    name = myname
    email = myname@gmail.com
[core]
    autocrlf = true
    excludesfile = C:\\Users\\myname\\Documents\\gitignore_global.txt
[diff]
        tool = meld
[difftool "meld"]
        cmd = "C:/Program Files (x86)/Meld/meld/meld.exe"
        prompt = false
[merge]
        tool = meld

[mergetool "meld"]
        cmd = "C:/Program Files (x86)/Meld/meld/meld.exe"
[difftool "sourcetree"]
    cmd = "C:/Program Files (x86)/Meld/meld/meld.exe $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE"
[mergetool "sourcetree"]
    cmd = 'C:/Program Files (x86)/Meld/meld/meld.exe' \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
    trustExitCode = true
Run Code Online (Sandbox Code Playgroud)

在Sourcetree中,我有以下设置:

在此输入图像描述

但是,当我右键单击Sourcetree上的文件来执行外部差异时,我能够打开Meld,但文件的内容根本没有显示.

在此输入图像描述

我在设置中做错了什么?

Par*_*Sen 28

我觉得现有的答案略微忽略了这一点.这是我自己的狗粮:

在此输入图像描述

参数详情:

Diff:  $LOCAL $REMOTE
Merge: $LOCAL $BASE $REMOTE --auto-merge --output=$MERGED
Run Code Online (Sandbox Code Playgroud)

因为External Diff,您需要从参数列表中删除$ BASE.

对于3向合并,您需要单击该External Merge Tool选项,该选项仅在存在任何未解决的冲突时才可用.

外部合并工具的上下文菜单

如果您不限于Sourcetree + Meld,我认为Git Extensions + KDiff3套件也可以是一个很好的开源替代品.

  • 你应该把args粘贴到你的答案中.目前尚不清楚后一个例子中是否有更多的论据.例如:`$ LOCAL $ BASE $ REMOTE --auto-merge --output = $ MERGED` (6认同)

Joz*_*ény 20

这里使用的实际设置是为了实现真正的3向合并,只读了THEIRS和MINE选项卡是这样的:

$LOCAL $BASE $REMOTE --auto-merge --output=$MERGED
Run Code Online (Sandbox Code Playgroud)

注意=--output.

我终于通过挖掘关于这个问题的第二个答案的评论来得到这个命令.Git使用Meld合并.


sky*_*der 6

对于OS X,它看起来像这样:

  • 差异命令:meld.

    • 参数: @LOCAL @REMOTE
  • 合并命令:meld.

    • 参数: $LOCAL $BASE $REMOTE --auto-merge --output=$MERGED

PS

要从命令行使用它,您必须通过brew安装它: brew install meld

在此输入图像描述

  • 使用[https://github.com/yousseb/meld/releases/]中预构建的Meld.app,我需要将Diff命令设置为:`/ Applications/Meld.app/Contents/MacOS/meld` (4认同)

red*_*lus 2

尝试将 meld.exe 的位置添加到您的 PATH 中(例如 C:\Program Files (x86)\Meld),然后在Diff Command中,只需输入 meld 而不是完整路径。请参阅要点如何在 Windows 上将 meld 与 Sourcetree 结合使用