【发布时间】:2023-03-25 16:10:01
【问题描述】:
对于特定的 github 存储库(仅限),我需要确保推送的所有文本文件都有 LF 行结尾(不是 CRLF)。
此外,下拉的 repo 文件应在 OSX 或 Windows 客户端上保留 LF 行结尾。
这可能吗?
【问题讨论】:
标签: git newline line-endings core.autocrlf lf
对于特定的 github 存储库(仅限),我需要确保推送的所有文本文件都有 LF 行结尾(不是 CRLF)。
此外,下拉的 repo 文件应在 OSX 或 Windows 客户端上保留 LF 行结尾。
这可能吗?
【问题讨论】:
标签: git newline line-endings core.autocrlf lf
您无法真正控制客户的操作 - 如果他们将 core.autocrlf 设置为 true,那么 LF 将自动转换为 CRLF。
如果每个人都使用core.autocrlf = input,那么它应该一切正常。
【讨论】:
尝试添加一个名为.gitattributes的文件,内容如下:
* eol=lf
到你的仓库。那么无论core.autocrlf开发人员使用什么设置,所有文件都将始终使用LF。
请记住,在二进制文件(如 zip、jar、png 等)中提交时,它也会将 CRLF 更改为 LF。
【讨论】:
CRLF 更改为LF 的事实意味着它会破坏它们,可能会默默地破坏它们。这根本不可取...
*.txt eol=lf、*.css eol=lf。默默?使用 git,您无法静默更改文件 - 所有内容都将通过 git status 看到。
some/dir/ binary 规则(要放在gitattributes 中)。它将目录的所有内容表示为二进制。 Git 不会对some/dir/ 下的文件应用任何新行转换。