我正在进行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
答案 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,因为它与它相比较。