Git是否对core.autocrlf和.gittributes text=auto使用相同的启发式方法?

Git是否对core.autocrlf和.gittributes text=auto使用相同的启发式方法?,git,core.autocrlf,Git,Core.autocrlf,通过向.gittributes文件添加*text=auto,Git使用自己的启发式方法来确定文件是否为文本,而不是二进制文件,以实现换行规范化 大概Git还需要一种启发式方法来确定当core.autocrlf=true时是否执行换行规范化 两种情况是否使用相同的启发式 或者换句话说,core.autocrlf=true在功能上是否等同于Windows计算机上.gittributes文件中core.eol=native的*text=auto?(除了.gittributes是每个repo,而core

通过向.gittributes文件添加
*text=auto
,Git使用自己的启发式方法来确定文件是否为文本,而不是二进制文件,以实现换行规范化

大概Git还需要一种启发式方法来确定当
core.autocrlf=true
时是否执行换行规范化

两种情况是否使用相同的启发式


或者换句话说,
core.autocrlf=true
在功能上是否等同于Windows计算机上.gittributes文件中
core.eol=native
*text=auto
?(除了.gittributes是每个repo,而
core.autocrlf是每个用户/系统)

简短的回答是“是”:自动检测对两者都是一样的。正如你所注意到的,如果你过分宣称这些是“相同的”,那么有一大堆警告,只是检测部分实际上是相同的。谢谢@torek!你的回答给了我勇气去戳密码。相关文件似乎位于文件根目录中的
convert.c
。我假设
gather\u stats
正在为启发式决策收集数据,这是否正确?似乎
crlf\u to\u worktree
是我们的英雄?:)
convert.c
是正确的文件,但它的某些工作方式总是让我摸不着头脑
crlf\u to_worktree
是静态的,仅从
convert\u to_working\u tree\u internal
调用,这也是静态的,但从另外三个函数调用。因此,确实
crlf_to_worktree
在这里做出了决定,但这是在额外的控制下,以避免在某些情况下做出决定(不涂抹、不规范化、无过滤器驱动程序)。在分析这些路径时,我往往会失去动力。:-)非常理解:)