`git diff'don';没有显示任何变化吗?为什么不呢?

`git diff'don';没有显示任何变化吗?为什么不呢?,git,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 f

我在一个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添加文件名后,它将转到临时区域,提交后将包含在git存储库中。 然后只有git会考虑并显示为diff。 还可以尝试使用git diff branchname。
默认情况下,git diff与master进行比较,如果您已经在master上,它将不会显示任何差异,因为它正在与之进行比较。

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

问题似乎出在寻呼机上,因此我查看了较少的环境变量,它似乎是
--quit if one screen
选项的问题,如下所述:

显然,它会转到备用屏幕,当它返回时会丢失输出。答案是在530版本中修复的。(我的Linux机器没有551,而Big Sur上的Mac电脑有487版。)


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

@FredericHenri胡说八道,提交后,它将不会显示在git diff中,因为这样您将与刚刚提交的提交进行差异made@Tim,读这个@FredericHenri Tim是正确的,普通
$git diff
将显示工作目录和索引之间的差异。@FredericHenri不确定您对该链接的意思,在提交之前,这是关于差异的seems@bcmcfc将
core.filemode
设置为
false
git diff
不会显示仅更改权限更改的文件的更改。您的理论在这里不适用。该文件在git状态下显示为modified,这意味着它已被跟踪
$ git config core.filemode
true