为什么Git状态显示许多文件为已修改,而实际上它们并没有被修改?

slmsl1lt  于 2023-03-11  发布在  Git
关注(0)|答案(3)|浏览(1909)

当我使用“git status”时,它会将许多文件列为已修改,而实际上它们并没有。它会将所有行显示为已删除,然后在差异报告的末尾再次添加相同的行。
我可以使用Windiff来检查文件是否完全相同。事实上,我已经使用git好几个月了,没有任何问题。今天,突然出现了这个问题。几个月前,我没有修改大部分文件。
我使用Windows和SourceTree,但也使用git命令行。两者都显示了同样的问题。
我尝试的第一件事是丢弃所有文件。没有任何React,“修改”的文件不会消失。然后恢复,同样的。然后,我想了想某种损坏,所以我删除了.git/index文件,然后,“git重置”。现在问题最严重,我有30个“修改”的文件,现在我有“1360”。我检查了硬盘,它是好的。
我不能简单地克隆它再次从远程,因为我有本地分支.
顺便说一下,我为其他项目准备的其他存储库工作得很好。
我首先关心的是知道发生了什么事。我完全迷路了。

更新

这不是行的问题。\r\n我没有打开任何文件。Windiff没有显示任何差异。另外,我删除了分支,然后从远程资源库 checkout 它,“修改”的文件仍然存在,即使放弃所有更改或还原它们。另外,它不仅仅是SourceTree,我从命令行使用Git。

neskvpey

neskvpey1#

第一个想法:缩进。在IDE中导入项目并尝试自动重新缩进时,所有行都可能因为缩进而更改。
第二个想法:有些IDE可能会在每一行添加不同的行尾,所以git会将其视为所有行的差异。

希望能帮到你。

m0rkklqb

m0rkklqb2#

谢谢Tony.我添加了“text=auto”,现在问题解决了.
如您所述,问题类似于SourceTree App says uncommitted changes even for newly-cloned repository - what could be wrong?
不过,我很困惑,因为我在过去的几个月里什么都没有改变或编辑,我需要说我安装了Windows 10,也许这可能与此有关。
不管怎么样,现在已经解决了。

7ajki6be

7ajki6be3#

工作溶液

我和我的同事也有同样的问题。
找到了一个解决方案,工作在我的个人电脑和我的同龄人的电脑。

在你的git文件夹中

键入以下命令之一:

$ git config core.autocrlf false
$ git config core.filemode false

(You可能需要键入两个,但考虑到您的情况,第一个可能就足够了)

**额外的好处:**如果这个解决方案对你有效,并且你想在你的整个电脑(所有git文件夹)上执行,只需在git configure后面加上参数--globalgit config --global core.autocrlf false

相关问题