`git diff`没有显示任何变化?为什么不?

时间:2015-09-08 14:09:23

标签: git

我正在进行git回购,其中已经进行了一些更改。所以我首先做了一个git status,它显示了一个文件发生了变化。然后我做了一个git diff来查看更改,但是根本没有输出任何内容(参见下面的输出),甚至没有模式更改或任何内容。

有没有人知道为什么git diff在输出有明显变化的情况下不输出任何内容?欢迎所有提示!

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   src/app/models/VariablePosition.py

no changes added to commit (use "git add" and/or "git commit -a")
$ git diff
$

[编辑] 有人问git config core.filemode的输出是什么:

$ git config core.filemode
true

2 个答案:

答案 0 :(得分:0)

不确定是否是您的问题,但我在 Mac 上遇到了这个问题,配置文件是从我的 Linux 机器上复制的。

问题似乎出在寻呼机上,所以我查看了我的 LESS 环境变量,看起来是 --quit-if-one-screen 选项有问题,如下所述:

https://unix.stackexchange.com/q/107315

显然它转到备用屏幕并在返回时丢失输出。一个回答说它是在 530 版本中修复的。(我的 Linux 机器有较少的 551,而 Big Sur 上的 Mac 有 487 版本。)

我从变量中删除了选项,git diff 又恢复了。

答案 1 :(得分:-1)

您的文件仍在工作目录中。使用git add filename后,它将进入临时区域,提交后将包含在git存储库中。 然后只有git会考虑并显示为差异。 也可以尝试使用git diff branchname。 默认情况下,git diff与master比较,如果你已经在master上,它将不会显示任何diff,因为它与它相比较。