git:我怎么摆脱“警告:CRLF将被replace为LF”而不禁用safecrlf?
我是git的新手,我已经阅读了很多关于行结尾以及git如何对待它们的内容。 顺便说一下,我在Windows上。 我创build了一个.gitattributes
文件,并将例如* .txt设置为文本。 当我提交一个.txt文件,我得到的警告:
警告:在whatever.txt中,CRLF将被LFreplace
但我知道。 我不需要这个警告。 replace文本文件中的行尾是我想要的。
现在,将safecrlf
设置为false会使警告消失,但safecrlf
的手册显示为:
如果为true,则使git检查在行结束转换处于活动状态时转换CRLF是否可逆。 Git会validation命令是直接还是间接地修改工作树中的文件。 例如,提交文件,然后检出相同的文件,应该在工作树中生成原始文件。 如果core.autocrlf的当前设置不是这种情况,那么git会拒绝这个文件。
从这个safecrlf
来看, safecrlf
似乎是一个好主意。 然而,我不明白为什么设置safecrlf
为真给我警告我的文本文件; 在我看来,这些是不同的问题 – 文本文件的警告和检查是否可逆。 的确,git不会拒绝我的文件。
我可以摆脱文本文件的警告,仍然safecrlf
设置? 还是我误解了一些东西?
据我所知,将core.safecrlf
设置为false
是closures该警告的唯一方法。
如果您的属性设置正确, safecrlf
通常不是必需的。 safecrlf
是防止在存储库中应该有混合(或非LF)行尾的文件中规范化。 它确实只与core.autocrlf
(确保它的自动猜测不能破坏任何东西)结合使用,如果你通过.gitattributes
设置你自己的属性,应该可以把所有closures。
在你的.gitattributes
你可以:
# normalize text files to use lf text eol=lf # except these which we want crlf *.txt eol=crlf
你的问题的简短答案是NO。
因为,基本上,core.safecrlf设置控制“警告级别”:
- 错误 – 没有警告地进行
- 警告 – 继续警告
- 真实 – 不要继续
所以,你必须select最适合你的选项。