小编典典

windows下如何强制git使用LF而不是CR+LF?

all

我想强制 git 在 Windows 下使用LFnot签出文件CR+LF。我检查了两个配置选项,但找不到正确的设置组合。

我希望它将所有文件转换为LF并保留LF在文件上。

备注:我使用过autocrlf = input,但这只是在您提交文件时修复文件。我想强制它让他们使用LF.

可能我不太清楚:存储库已经在使用LF,但是使用 msysgit 签出的文件正在使用CR+LF,我想强制 msysgit 使用LF:
forcing Unix line endings 来获取它们。

>git config --list | grep crlf
core.autocrlf=input

阅读 136

收藏
2022-03-14

共1个答案

小编典典

OP在他的问题中补充说:

使用 msysgit 签出的文件正在使用CR+LF,我想强制 msysgit 使用它们LF

第一个简单的步骤仍然是在一个.gitattributes文件中:

# 2010
*.txt -crlf

# 2020
*.txt text eol=lf

(如孙子评论中所述,指的是行尾转换),以避免对正确的文件进行任何转换。.gitattributesCRLF``eol

而且我一直建议 git config --global core.autocrlf false禁用任何转换(这将适用于 所有 版本控制的文件)

从 Git 2.16(2018年第一季度)开始,您可以立即git add --renormalize .应用这些.gitattributes设置。


但是第二个更强大的步骤涉及一个gitattribute 过滤器驱动程序并添加一个涂抹步骤

过滤器驱动程序

每当您要更新工作树时,脚本只能针对您在 中指定的文件.gitattributes,强制LF eol您想要强制执行的任何其他格式选项。
如果 ” clear” 脚本没有做任何事情,您将(在提交之后)转换您的文件,完全应用您需要它们遵循的格式。

2022-03-14