正如我们可以收集到的fromotherposts一样,Git的行尾规范化有其优点和缺点。我有一个特定的Windows项目,我认为最好的做法是完全禁用行尾规范化。(大部分都是CRLF
),而不是让git把它们规范化为LF
--只在幕后进行,我希望这个修改能影响所有机器上仓库的所有克隆。
大多数关于Git行尾规范化的讨论都是关于core.autocrlf
的,我可以通过设置core.autocrlf=false
来实现我的目标。然而,这是一个git-config设置,我相信你必须在每台机器上分别设置它。如果是这样,那似乎很容易出错,特别是因为msysgit
安装程序会引导你设置core.autocrlf=true
。
1条答案
按热度按时间soat7uwm1#
避免在每台计算机上分别设置
core.autocrlf
的最佳方法似乎是将.gitattributes
文件签入包含以下单行的存储库或者,如果你有一个旧版本的Git,那么
这告诉Git,对于所有路径(因此
*
),不应该尝试行尾规范化。据我所知,这不应该有任何其他副作用。特别是,它不应该改变如何生成差异(这有一个单独的属性diff
/-diff
)或如何处理合并(这有一个单独的属性merge
/-merge
)。有关更多详细信息,我建议您参考以下资源:
git help attributes
或an online copy),详细描述了行尾规范化是如何工作的,以及不同属性的特殊影响(可能最相关的是text
、crlf
、diff
、merge
和binary
)。-text
并不意味着简单的“这是一个二进制文件”。