【问题标题】:Cannot make git diff use diff.external for external diff tool无法使 git diff 使用 diff.external 作为外部 diff 工具
【发布时间】:2014-04-05 16:57:16
【问题描述】:

我正在使用带有默认 Ubuntu 12.04 软件包的 git:

git --version git 版本 1.7.9.5

我找不到任何可以让 git diff 打开外部差异工具的机制,它似乎完全忽略了我使用的任何设置。我终于尝试通过使用

来强制它使用我的工具

git -c diff.external=/home/john/bin/git-meld diff --ext-diff

但这也不起作用(仍在调用 diff --cc)

我也尝试过设置 GIT_EXTERNAL_DIFF 以及尝试 git difftool --tool=meld (这也奇怪地调用了 diff -cc)。我完全不知道为什么我的差异工具设置被 git 忽略了。我发现 diff -cc 输出难以理解,因为我使用 GUI diff 工具已经很长时间了。

我应该尝试更新到较新的 git 吗?

感谢您的帮助! 约翰

我的 git 配置设置如下:

git 配置 -l

user.name=jmicco user.email=parent.bank.app@gmail.com diff.external=/home/john/bin/git-meld diff.tool.external=/home/john/bin/git-meld core.editor=emacs core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true remote.origin.fetch=+refs/heads/:refs/remotes/origin/ remote.origin.fetch=refs/notes/:refs/notes/ remote.origin.url=ssh://jmicco@review.gerrithub.io:29418/jmicco/allowance-app remote.origin.pushurl=ssh://jmicco@review.gerrithub.io:29418/jmicco/allowance-app remote.origin.push=HEAD:refs/for/master branch.master.remote=origin branch.master.merge=master remote.gerrit.url=ssh://jmicco@review.gerrithub.io:29418/jmicco/allowance-app remote.gerrit.fetch=+refs/heads/:refs/remotes/gerrit/ remote.gerrit.fetch=refs/notes/:refs/notes/ remote.gerrit.pushurl=ssh://jmicco@review.gerrithub.io:29418/jmicco/allowance-app remote.gerrit.push=HEAD:refs/for/master gerrit.createchangeid=true

【问题讨论】:

    标签: git ubuntu diff


    【解决方案1】:

    试试:

    GIT_EXTERNAL_DIFF="/bin/echo" git diff
    

    它应该打印如下内容:

    foo.c /tmp/T1NuN5_foo.c 240b63429c3267f8141ee0f33be9d12fc46216d3 100755 foo.c 0000000000000000000000000000000000000000 100755
    

    那么你的 git 版本一切正常。

    diff.external=/home/john/bin/git-meld 是无效设置。 Git 期望外部 diff 程序能够识别 git 特定的参数并产生标准的 diff 输出。 Meld 不会那样做。

    我觉得你需要git difftool -t meld

    【讨论】:

    • "diff.external=/home/john/bin/git-meld 是无效设置。"这不取决于git-meld的内容吗?一个常见的策略似乎是创建一个运行 meld $2 $5 的文件 git-meld
    猜你喜欢
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 2010-12-08
    • 2016-02-20
    相关资源
    最近更新 更多