Git 显示修改后的文件,没有实际差异

问题描述 投票:0回答:1

我正在处理一个大型且复杂的公司项目,并且遇到了 Git 和 Visual Studio 解决方案文件 (.sln) 的问题。我有两个 .sln 文件,Git 识别为已完全编辑,但是当我使用 WinMerge 或 Beyond Compare 比较文件时,工作区域和上次提交之间没有差异。文件是相同的,包括 EOL、空格等。

这是我尝试过的:

git diff <commit-sha> --ignore-space-change -- <path>

这导致没有发现任何差异。

当我在没有 --ignore-space-change 标志的情况下运行命令时:

git diff <commit-sha> -- <path>

Git 将差异显示为 @@ -1,20 +1,20 @@,表示删除了 20 行并添加了 20 行,尽管内容完全相同且整个文件只有 20 行。

最令人困惑的部分是,当我隐藏这两个文件时,它们被添加到隐藏区域,但它们仍然出现在“更改”部分。即使我使用以下方法恢复文件:

git restore --source=<commit-sha> <path> 

我仍然看到这些文件被标记为已修改。

我一直不知道如何解决这个问题。任何帮助或见解将不胜感激。

谢谢!

git diff git-diff git-difftool sln-file
1个回答
0
投票

我想我找到问题了!

在我们的 .gitattributes 文件中,有一行:

*.sln text eol=crlf

注释掉这一行后,Git 就看不到过去的差异了。

我不完全确定为什么会发生这种情况,因为这些文件已经是 CRLF 格式,而且仍然如此。如果有人有解释,我很想听听。

© www.soinside.com 2019 - 2024. All rights reserved.