我正在检查第三方项目“libjpeg”https://github.com/winlibs/libjpeg在Linux上(这只是一个例子,实际上我在许多其他项目中也遇到了同样的问题)。我有以下 Git 行结尾配置。
我只配置了全局设置(设置为以 LF 行结尾结帐):
$ git config --system -l | grep core
core.eol=lf
core.autocrlf=false
$ git config --global -l | grep core
core.eol=lf
core.autocrlf=false
没有关于行结尾的本地(存储库)设置。
我读过这篇关于 Git 行结尾配置的文章:https://adaptivepatchwork.com/2012/03/01/mind-the-end-of-your-line我认为我的配置应该为 Linux 上的所有文本文件提供 LF。然而它不起作用。我在工作区中得到了 CRLF。例如:
~/gitclonetest/libjpeg$ file libjpeg.map
libjpeg.map: ASCII text, with CRLF line terminators
~/gitclonetest/libjpeg$ cat -v libjpeg.map
LIBJPEG_9.0 {^M
global:^M
*;^M
};^M
有人可以帮助我理解我所缺少的吗?我的目标是当我在 Linux 主机上克隆它时,让所有文本文件(对于任何项目)自动转换为 LF。
UPDATE:目标是配置 Git 在 Linux 主机上使用 LF 签出,即使文件在存储库中使用 CRLF 存储。
问题是你有core.autocrlf
设置为 true。该文档说明如下:
将此变量设置为“true”与将所有文件上的文本属性设置为“auto”并将 core.eol 设置为“crlf”相同。如果您希望工作目录中有 CRLF 行结尾并且存储库有 LF 行结尾,请设置为 true。
您绝对不想将该变量设置为true
在 Unix 或 Linux 系统上;它应该设置为false
除非您使用的是 Windows 系统(即使如此,也有更好的选择)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)