Git状态显示已更改的文件,但git diff不显示?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (623)

我已经看过所有类似的问题,但是我已经检查过了,而且肯定发生了一些奇怪的事情。

在一台服务器(使用git 1.8.1的Solaris)上,我克隆了git存储库,然后将.git文件夹复制到我现有的活动文件中。这件事做得很好,我可以运行

git status

然后

git diff [filename]

检查任何不同的文件。

但是,在另一台服务器上,我做的完全一样

git diff [filename] 

没有显示任何内容,即使文件的内容绝对不同。我还测试了添加一个新文件,提交它然后编辑。同样的问题,git status显示文件已更改,但git diff什么都没显示出来。如果我下载修改后的文件并在本地运行diff,那么我将得到diff输出。

提问于
用户回答回答于

我将文件添加到指数:

git add file_name

然后运行:

git diff --cached file_name

可以看到git diff的描述。

用户回答回答于

有几个原因git status可能会显示出不同,但是git diff也许不会。

  • 文件的模式(权限位)更改--例如,从777更改到700。
  • 从CRLF(DOS)改为LF(UNIX)

找出发生了什么最简单的方法就是跑git format-patch HEAD^看看生成的补丁写了什么。

扫码关注云+社区