git - Git 无法使用 LF 在 Linux 上签出使用 CRLF 存储的文件
问题描述
我正在从 Linux 上的https://github.com/winlibs/libjpeg检查一个第三方项目“libjpeg” (这只是一个例子,实际上我对许多其他项目也有同样的问题)。我有以下 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我认为我的配置应该给我所有文本文件的 LF在 Linux 上。但是它不起作用。我在我的工作区中得到了 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。
更新:目标是将 Git 配置为使用 LF 在 Linux 主机上签出,即使当时文件是使用 CRLF 存储在存储库中的。
解决方案
问题是您已core.autocrlf
设置为true。该文档说明了以下内容:
将此变量设置为“true”与将所有文件的文本属性设置为“auto”以及将 core.eol 设置为“crlf”相同。如果您想在工作目录中使用 CRLF 行结尾并且存储库具有 LF 行结尾,请设置为 true。
您绝对不想true
在 Unix 或 Linux 系统上设置该变量;false
除非您使用的是 Windows 系统,否则它应该设置为(即使这样也有更好的选择)。
推荐阅读
- c++ - 为什么这些字符串不相等
- xml - OdooV14 - 使用条件属性隐藏网站上的部分
- python - Python 获取 Wifi 信息
- javascript - Javascript函数更改返回值
- python-3.x - 我想使用 3 个独特的数据框创建一个嵌套的 dict/JSON
- angular - PrimeNG Datepicker 禁用日期范围
- curl - Curl to Python 上传到 Galaxy Store 的请求
- html - 当宽度不足时,如何使 CSS Grid 项目(具有不同宽度)换行到 100%?
- gnuplot - Gnuplot 根据 Matrix 数据在极坐标中绘制 2D 热图
- latex - Latex 中数学方程的目录