git diff 和 git difftool 无作用且没有输出。

14

我正在尝试在Windows 7 64位上运行git diff。当我从Windows命令提示符中运行以下命令时:

C:\temp\mygrit>git diff
或者
C:\temp\mygrit>git difftool

我没有得到任何输出,也没有启动任何外部程序。这是我的.gitconfig文件:

[diff]
    tool = bc3
[difftool]
    prompt = false
[difftool "bc3"]
    cmd = \"c:/program files (x86)/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\"
我如果从.gitconfig中移除这些行,会得到相同的结果。
有任何想法是怎么回事?
1个回答

17

好的,简单的回答。 git diff 的默认行为是显示所有已修改但未暂存的文件。如果没有修改的文件,则没有输出。

git difftool 使用 git diff 的输出,因此如果上一个命令没有输出,则 git difftool 也不会有任何操作。

解决方案: 修改一些文件但不要将它们暂存,重新运行命令。如果配置文件有问题,它们将会出现。


10
git diff --cached(或 --staged):比较已暂存/索引的文件。 - Karthik Bose
4
git diff --staged:比较已暂存的文件。 - Roman Starkov
1
谢谢解释,我认为这是非常不自然的行为。 - JJP
git diff --no-index 命令可以比较文件,忽略它们在 git 中的状态,就像一些文件系统文件一样。 - Grigorii Hait

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接