我是git的新手,我已经阅读了许多关于行结尾以及git如何对待它们的内容.顺便说一句,我在Windows上.我已经制作了一个.gitattributes文件并将例如*.txt设置为文本.当我提交.txt文件时,我收到警告:
警告:CRLF将在whatever.txt中被LF替换
但我知道.我不需要那个警告.替换文本文件中的行结尾是我想要的.
现在,设置safecrlf为false会使警告消失,但safecrlf阅读手册:
如果为true,则进行git检查,如果在行结束转换处于活动状态时转换CRLF是可逆的.Git将验证命令是直接还是间接修改工作树中的文件.例如,提交文件后检出同一文件应该会在工作树中生成原始文件.如果对于core.autocrlf的当前设置不是这种情况,git将拒绝该文件.
从那以后,safecrlf似乎是一个好主意.但是,我不明白为什么设置safecrlf为true会给我关于我的文本文件的警告; 在我看来,这些是不同的问题 - 文本文件的警告和检查是否可逆.实际上,git不会拒绝我的文件.
我可以摆脱文本文件的警告,仍然
safecrlf设置?还是我误解了什么?
Jan*_*ger 16
据我所知,设置core.safecrlf为关闭该警告false的唯一方法.
safecrlf如果您的属性设置正确,通常不需要.关键safecrlf是要防止在存储库中应该具有混合(或非LF)行结尾的文件中的规范化.它真的只有与它结合使用core.autocrlf才能(确保它的自动猜测不会破坏任何东西),如果你通过.gitattributes它设置自己的属性,那么应该可以将所有这些都关掉.
小智 11
在您的.gitattributes,您可以:
# normalize text files to use lf
text eol=lf
# except these which we want crlf
*.txt eol=crlf
Run Code Online (Sandbox Code Playgroud)
对你的问题的简短回答是否定的.
因为,基本上,core.safecrlf设置控制"警告级别":
因此,您必须选择最适合您的选项.