【问题标题】:Unable to set Meld as a diff tool in Git Bash无法在 Git Bash 中将 Meld 设置为差异工具
【发布时间】:2019-06-20 17:43:32
【问题描述】:

谁能帮我弄清楚如何让 Meld 在 Windows 10 的 Git Bash 上工作?我遵循了一些说明,但都没有为我工作。

在我输入这些命令后,什么也没发生:

git config --global diff.tool meld
git config --global difftool.meld.path "/c/Program Files(x86)/Meld/Meld.exe"
git config --global difftool.prompt false

使用git difftool 命令后,我得到这个奇怪的错误:

git config option diff.tool set to unknown tool: merge
Resetting to default...

This message is displayed because 'diff.tool' is not configured.
See 'git difftool --tool-help' or 'git help config' for more details.
'git difftool' will now attempt to use one of the following tools:
opendiff kdiff3 tkdiff xxdiff meld kompare gvimdiff diffuse diffmerge ecmerge p4merge araxis bc codecompare emerge vimdiff
2 files to edit.

我也试过了;

  • /c/Progra~2/meld/bin/
  • "/c/程序文件 (x86)/Meld/"
  • "c:/程序文件 (x86)/Meld/"

我的配置文件:

[user]
    name = user
    email = email@sample.com

[merge]
    tool = meld

[mergetool "meld"]
    cmd = meld --auto-merge \"$LOCAL\" \"$BASE\" \"$REMOTE\" --output \"$MERGED\" --label \"MERGE (REMOTE BASE MY)\"
    trustExitCode = false

[mergetool]
    prompt = false
    keepBackup = false

[diff]
    guitool = meld

    tool = meld
[difftool "meld"]
    cmd = meld \"$LOCAL\" \"$REMOTE\" --label \"DIFF (ORIGINAL MY)\"
    path = C:/Program Files(x86)/Meld/Meld.exe
[difftool]
    prompt = false

【问题讨论】:

    标签: windows bash git user-interface meld


    【解决方案1】:

    您的路径写得不好,缺少空格字符。

    你应该定义cmd而不是path

    最终,这应该对你有用:

    git config --global diff.tool meld
    git config --global difftool.meld.cmd "\"C:/Program Files (x86)/Meld/Meld.exe\" \"\$LOCAL\" \"\$REMOTE\""
    git config --global difftool.prompt false
    

    编辑:

    如果您想要有效工具的 Git 指南,可以通过以下方式查看:

    git difftool --tool-help
    

    无论如何,经过我们的交流,您决定使用 P4merge;这是我的答案的后续更新。

    这是设置它的方法:

    git config --global merge.tool p4merge
    git config --global mergetool.p4merge.cmd "\"C:/Program Files (x86)/Perforce/p4merge.exe\" \"\$LOCAL\" \"\$REMOTE\""
    git config --global diff.tool p4merge
    git config --global difftool.p4merge.cmd "\"C:/Program Files (x86)/Perforce/p4merge.exe\" \"\$LOCAL\" \"\$REMOTE\""
    

    【讨论】:

    • 在我的 .config 文件中添加了缺少的空格字符,我尝试了这个命令,但它一直显示相同的错误。
    • 你能发布你当前的完整配置文件吗?
    • 是的,这里是:pastebin.com/8rG4bkLy 虽然我是 Bash 新手,但我做了很多研究,但仍然找不到解决方案。
    • Ok... 你必须 1/ 删除 difftool meld 的路径定义。 2/ 为mergetool 修复meld 可执行文件的路径(定义difftool 的完整路径) 3/ 可能使用git diff 而不是直接difftool。
    • 它能解决您的问题吗?
    【解决方案2】:

    我也在 Windows 10 上使用 Git Bash,这个配置在 Meld 上运行良好:

    diff.guitool=meld
    merge.tool=meld
    difftool.meld.path=C:/Program Files (x86)/Meld/meld/meld.exe
    mergetool.meld.path=C:/Program Files (x86)/Meld/meld/meld.exe
    

    【讨论】:

      猜你喜欢
      • 2023-02-01
      • 1970-01-01
      • 2023-04-04
      • 2011-12-18
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 2016-01-23
      相关资源
      最近更新 更多