在一台Windows机器上,我使用git add添加了一些文件。 我收到警告说:
LF将被CRLF取代
这种转变的后果是什么?
在一台Windows机器上,我使用git add添加了一些文件。 我收到警告说:
LF将被CRLF取代
这种转变的后果是什么?
当前回答
它应该是:
警告:(如果你检出/或克隆到另一个文件夹与你当前的核心。如果为true,)LF将被CRLF所取代 该文件将在您的(当前)工作目录中有其原始的行结束符。
这张图可以解释它的意思。
其他回答
从~/。gitattributes文件,
* text = auto
将防止Git首先检查行结束符。
我不太了解Windows上的Git,但是……
在我看来,Git正在转换返回格式以匹配正在运行的平台(Windows)。CRLF是Windows上的默认返回格式,而LF是大多数其他操作系统的默认返回格式。
当代码被移动到另一个系统时,返回格式可能会得到适当的调整。我还认为Git足够聪明,可以保持二进制文件的完整性,而不是试图在JPEG文件中将lf转换为crlf。
总而言之,您可能不需要为这种转换担心太多。但是,如果您将项目归档为tarball,其他编码员可能会喜欢使用LF行终止符而不是CRLF。取决于你有多关心(取决于你不使用记事本),你可能想要设置Git使用LF返回,如果你可以的话:)
附录:CR为ASCII码13,LF为ASCII码10。因此,CRLF是两个字节,而LF是一个字节。
unix2dos和dos2unix都可以在Windows Git Bash上使用。可以使用以下命令进行UNIX (LF)→DOS (CRLF)转换。因此,您将不会得到警告。
unix2dos filename
or
dos2unix -D filename
但是,不要在任何现有的CRLF文件上运行这个命令,因为这样每隔两行就会得到空换行符。
dos2unix -D文件名不适用于所有操作系统。请检查此链接的兼容性。
如果出于某种原因你需要强制执行命令,那么使用——force。如果它表示无效,则使用-f。
许多文本编辑器允许您更改为LF。请参阅下面的Atom指令。它简单明了。
点击右下角的CRLF:
在顶部的下拉菜单中选择LF:
确保您已经安装了最新版本的Git
我在之前的回答中,git配置核心。在使用Git(2.7.1版)时,自专制错误,但它不工作。
然后,当升级git(从2.7.1到2.20.1)时,它就可以工作了。