"git status" 显示有变更的文件,但 "git diff" 却没有。
"git status" 显示有变更的文件,但 "git diff" 却没有。
我查看了所有类似的问题。然而,我已经进行了双重检查,发现确实发生了奇怪的事情。
在一台服务器上(Solaris with Git 1.8.1),我克隆了Git存储库,然后将.git文件夹复制到我的现有实时文件中。这完美地运行了,我可以运行
git status
然后
git diff [filename]
来检查所有不同的文件。
在另一台服务器上(Solaris with Git 1.7.6),我完全相同但是
git diff [filename]
什么也没有显示,即使文件内容明显不同。我还测试了添加一个新文件,提交它,然后编辑。同样的问题,git status
显示文件已更改,但git diff
什么也没有。如果我下载已更改的文件,并在本地运行diff,那么我会得到不同的输出。
admin 更改状态以发布 2023年5月22日
我把这个文件添加到索引中:
git add file_name
然后运行:
git diff --cached file_name
你可以在这里看到git diff
的描述。
如果你需要撤消你的git add,请参见这里:如何在提交之前撤消'git add'?
对我来说,这似乎与文件权限有关。
我的项目中有一个使用Mac / Linux的人似乎提交了一些具有非默认权限的文件,而我的Windows Git客户端无法复制。
对我来说解决方案是告诉Git忽略文件权限:
git config core.fileMode false