有没有办法确定现有git存储库中的行结尾?
如果我克隆现有存储库,如何确定创建者使用了哪个core.autocrlf?
我仍然不确定core.autocrlf的最佳设置,例如在Windows机器上 (因为有多种意见:Distributing git configuration with the code或https://help.github.com/articles/dealing-with-line-endings)
奖金问题:您是否可以在Windows(使用标准工具)上确定回购是否在所有提交中都有混合行结尾(错误的core.autocrlf设置)?
答案 0 :(得分:15)
要检查存储库中实际提交的行结尾(无论您的core.autocrlf
设置如何),请尝试以下操作:
git grep -I --files-with-matches --perl-regexp '\r' HEAD
(-I
表示不应该查看二进制文件。)
答案 1 :(得分:3)
我仍然会将此设置(core.autocrlf
)保持为false
,正如我在您提及的“ Distributing git configuration with the code”中所述,并使用eol
gitattributes directive更精细 - 粒度控制。
话虽如此,检测混合线结尾:
core.autocrlf
设为true
git clone
您的回购git diff
:如果你的克隆刚刚看到差异......一些自动的eol转换只发生在工作树中。2016年更新(4年后):a more modern way to detect eol changes:
git -c color.diff.whitespace="red reverse" diff -R -- afile
答案 2 :(得分:2)
最佳线路结束练习在这里:https://stackoverflow.com/a/10855862
确定现有git存储库中的行结尾:
core.autocrlf
设置为false
,以便在传输文件时不会更改文件结尾。git clone
你的回购为前。在新目录中。除了repo有.gitattributes文件外,你无法确定创建者使用的是什么core.autocrlf,因为它是本地配置。
在Windows上,如果您不使用.gitattributes,请使用默认情况下设置的core.autocrlf true。
答案 3 :(得分:0)
在Windows中,只需从命令提示符处运行以下命令:
git config --list
这将列出所有git配置变量。
如果要获取单个配置设置(例如,对于core.autocrlf),请在Windows命令提示符下运行以下命令:
git config --get core.autocrlf
这将为您提供一个“ true
”或“ false
”值。
如果您要更改此设置,请编辑C:\ProgramData\Git\config
文件,并将值从false
更改为true
注意:这仅适用于Windows操作系统。