问题描述
VS Code 突出显示了一些“更改”的行:
还有 git status
输出:
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit,working tree clean
更改文件编码后出现此问题:
存储库中的所有文件都使用 Windows-1251
进行编码。 working-tree-encoding
中的属性 .gitattributes
与 files.encoding
中的 settings.json
相同。
解决方法
这里可能发生的情况是您已经告诉 Git 对您的文件使用一种编码 (windows-1251),但您的编辑器正在使用另一种编码(可能是 UTF-8)。设置工作树编码告诉 Git 它应该在内部存储 UTF-8,但是在检出和添加文件时它应该使用不同的编码。
请注意,如果您已修改 .gitattributes
中的值但尚未运行 git add --renormalize .
,然后进行提交,则也可能发生这种情况。也有可能现在一切都设置正确,但是之前有人签入了不正确的代码,现在您有不同之处。
请注意,如果没有令人信服的理由,您应该尽可能使用 UTF-8(不带字节顺序标记)。工作树编码可以帮助那些必须使用无法处理 UTF-8 的遗留工具的人,例如 Windows 上的某些工具(总是需要 UTF-16)。如果您的工具能够处理 UTF-8(并且在 2021 年,它绝对应该能够处理),那么 UTF-8 是您最好的选择。