如何在Linux上让Git将CRLF文件转换为LF?

4
我想要做的事情非常简单:检查一个具有CRLF结尾(没有.gitattributes文件)的repo,并最终得到本地(LF)行结尾。我甚至不想提交回去。
我已经阅读了Github的建议Tim Clem的文章,但它们似乎主要针对Windows开发人员。
我尝试了这个:
$ git config --global core.autocrlf=input
$ git clone https://github.com/DennisSchiefer/Project-OSRM-Web.git

但是,我关心的文件OSRM.Config.js仍然具有CRLF结尾。

尝试使用core.autocrlf=true也没有帮助。

即使添加并提交.gitattributes文件(然后git rm --cached -r . && git reset --hard),也没有帮助。

我找不到任何组合可以实际上让这个文件保留LF行结尾。

1个回答

1

core.autocrlf 会强制 Git 处理所有的 文本 文件。

如果 OSRM.Config.js 没有被处理,那就意味着 Git 认为它是二进制文件。
请参见:

即使有一个带有 *.js text.gitattributes,也仍然会保留 crlf

但是,使用 *.js eol=lf,那将会强制转换。

请参见 "Git 的 .gitattributes 如何将所有文件都视为二进制文件,除了一些例外情况?".


在我的 .gitattributes 文件中,除了其他行之外:*.js text - Steve Bennett
@SteveBennett text 意味着 crlf diff,就像 binary 意味着 -crlf -diff (https://dev59.com/v2855IYBdhLWcg3wlFSP#4264522) 或许可以尝试 *.js text lf diff - VonC
@SteveBennett 或 *.js eol=lf - VonC
@SteveBennett 很好。我已经在答案中包含了我的评论,以增加可见性。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接