正如人们可以从其他文章中了解到的,Git的行末标准化有其优缺点。我有一个特定的仅限Windows的项目,在这个项目中我认为最好的做法是完全禁用行末标准化。也就是说,我想保留所有换行符(其中大多数是CRLF
),而不是让git在后台将它们规范化为只有LF
,并且我希望这个更改影响所有机器上克隆的存储库。问题是最有效的方法是什么。
关于Git行末标准化的大多数讨论都是基于core.autocrlf
,我可以通过设置core.autocrlf=false
来实现我的目标。然而,这是一个git-config设置,我相信每台机器都必须单独设置。如果是真的,那么这似乎很容易出错,特别是因为msysgit
安装程序会引导用户将core.autocrlf=true
设置为默认值。
core.autocrlf=true
(默认值),Git 在检出时不会修改行尾吗?这是在它甚至读取.gitattributes
之前发生的事情吗?(.gitattributes
本身将具有 CRLF)。然后,在提交时,Git 被告知不要转换 CRLF(-text
),因此您最终在存储库中得到的是 CRLF。 - Michel Jung.gitattributes
。本地仓库应该与远程仓库的行尾相匹配。只有在检出并提交文件时才会执行行尾转换。 - Jason