TortoiseGit 在提交代码时列出存储库中的所有文件,因为行尾已更改

问题描述

TortoiseGit 在提交代码时列出存储库中的所有文件,因为行尾已更改。

以存储库结尾的行是 LF,在我的本地 Windows 机器上已更改为 CRLF。

当我尝试提交代码更改时,所有文件都在提交页面中列出,未更改文件的唯一区别是行尾。

如何让 TortoiseGit 只列出更改过的文件而忽略行尾?

谢谢!

解决方法

没有通用的方法可以忽略 EOL 更改。

您可以考虑在 Git 中进行自动 CRLF 转换。

推荐的方式是使用.gitattributes文件;您也可以使用 https://stackoverflow.com/a/67356631/3906760 指出的 AutoCRLF 方法,但是,不再推荐这种方法。

例如如果您将以下行放入 *.txt text 中,则意味着所有 *.txt 文件都以 LF 行结尾存储在存储库中,并且在检出时这些文件与 CRLF 一起存储在您的工作树中。这也意味着提交时 CRLF 会自动删除,以便文件仅与 LF 一起存储在存储库中。

您也可以尝试使用与 LF-EOL 完全兼容的编辑器。

,

在 Windows 上,使用 Git core.autocrlf 配置很方便。如果您将其设置为 true,Git 将在结帐时自动将 LF 转换为 CRLF,然后在提交之前将 CRLF 转换为 LF。更改的文件之间不会列出换行符的差异。

TortoiseGit 中,您可以使用设置 对话框设置此配置(请参阅TortoiseGit Man)。请注意,您可以全局设置或仅对当前存储库进行设置。