Git 为特定文件禁用safecrlf

Git 为特定文件禁用safecrlf,git,newline,core.autocrlf,Git,Newline,Core.autocrlf,我正在使用Windows。我的~/.gitconfig中有以下设置: [core] autocrlf = input safecrlf = true 我的示例存储库有三个文件:lf.txt,以lf行结尾crlf.txt带crlf行结尾和auto.txt带crlf行结尾。我希望前两个文件在任何地方签出时都保留这些行尾。对于auto.txt我希望git在提交和签出时将CRLF转换为LF 要添加带有crlf行结尾的crlf.txt,我必须在.gittributes crlf.txt

我正在使用Windows。我的~/.gitconfig中有以下设置:

[core]
    autocrlf = input
    safecrlf = true
我的示例存储库有三个文件:
lf.txt
,以lf行结尾
crlf.txt
带crlf行结尾和
auto.txt
带crlf行结尾。我希望前两个文件在任何地方签出时都保留这些行尾。对于
auto.txt
我希望git在提交和签出时将CRLF转换为LF

要添加带有crlf行结尾的
crlf.txt
,我必须在
.gittributes

crlf.txt eol=crlf
但我不能在保留全局
safecrlf=true
设置的同时添加
auto.txt
(我想保留该设置,因为它很有用,可以防止我意外地签入CRLF文件)

我试图将以下行添加到
.gittributes
中,希望它能正常工作:

auto.txt safecrlf=false


但是Git忽略了它。

core.safecrlf
是一个全局标志,不能对每个文件进行设置或清除。设置时,它只在内部变量中设置标志,
global\u conv\u flags\u eol
,这会影响crlf转换的行为。这些标志有三种可能的状态:不说话、警告或错误。我不确定你是否能实现你的目标。谢谢,我想我可以在全局范围内关闭它,添加文件,然后再打开它。没有那么方便,但我想我可以接受。
auto.txt core.safecrlf=false