我已经看过所有类似的问题。然而,我仔细检查了一下,肯定发生了一些奇怪的事情。
在一台服务器(Solaris with Git1.8.1)上,我克隆了Git存储库,然后将.git文件夹复制到我现有的活动文件中。这个运行得很好,我可以运行
git status
然后
git diff [filename]
检查任何不同的文件。
但是,在另一台服务器(带有Git 1.7.6的Solaris)上,我正在执行完全相同的操作
git diff [filename]
不显示任何内容,即使文件的内容肯定不同。我还测试了添加新文件、提交文件,然后进行编辑。同样的问题,git status
显示文件已更改,但git diff
不显示任何内容。如果我下载更改后的文件并在本地运行diff,则会得到diff输出。
发布于 2016-09-27 16:13:15
我遇到了一个问题,某个程序修改了成百上千的行尾,git diff
列出了所有更改过的源文件。在修复了行尾之后,git status
仍然将文件列为已修改。
我能够通过将所有文件添加到索引,然后重置索引来解决这个问题。
git add -A
git reset
core.filemode
设置为false。
发布于 2019-07-15 22:00:27
正如在a previous answer中已经注意到的,这种情况可能是由于行结束问题(CR/LF与LF)造成的。我用下面的命令解决了这个问题(在Git版本2.22.0下):
git add --renormalize .
根据手册:
--renormalize
Apply the "clean" process freshly to all tracked files to
forcibly add them again to the index. This is useful after
changing core.autocrlf configuration or the text attribute in
order to correct files added with wrong CRLF/LF line endings.
This option implies -u.
发布于 2013-02-20 20:44:08
我怀疑可能是你的Git安装或者你的仓库有问题。
尝试运行:
GIT_TRACE=2 git <command>
看看有没有什么有用的东西。如果这样还不能解决问题,那就使用strace,看看出了什么问题:
strace git <command>
https://stackoverflow.com/questions/14564946
复制相似问题