windows下使用git出现:warning: LF will be replaced by CRLF in

这个是因为换行符的问题,Windows下换行符和Unix下的换行符不一样,git会自动转换,但是这样有问题,所以解决方法如下:

使用命令,禁止自动转换:

git config --global core.autocrlf false

也可以进入当前用户的主目录(通常 XP 的用户目录是 C:\Documents and Settings\当前用户名,在 Vista 和 Win7 下是C:\Users\当前用户名),用你最顺手的文本编辑器打开 .gitconfig 文件。在 [core] 区段找到 autocrlf,将它的值改为 false。如果没找到,就在 [core] 区段中新增一行:

    autocrlf = false

如图:
windows下使用git出现:warning: LF will be replaced by CRLF in_第1张图片

如图:
windows下使用git出现:warning: LF will be replaced by CRLF in_第2张图片

普及:

不同系统下的换行符

CR、LF、CR/LF为不同操作系统上使用的换行符:

  • Windows/DOS系统:采用CR/LF表示下一行;
  • Unix/Linux系统:采用LF表示下一行;
  • Mac OS系统:采用CR表示下一行;
  • Mac OS X系统:采用LF表示下一行( Mac OS X已经改成和Unix/Linx一样使用LF )。

CR使用符号’\r’,十进制ASCII代码是13,十六进制代码为0x0D;LF使用’\n’符号表示,ASCII代码是10,十六制为0x0A。所以Windows平台上换行在文本文件中是使用 0d 0a 两个字节表示,而UNIX和苹果平台上换行则是使用 0a 或 0d 一个字节表示。

Unix/Linux/Mac系统下的文件在Windows里打开的话(使用Windows自带记事本),会出现换行丢失,所有文字会变成一行,整个文本会乱成一团。Windows系统下的文件在Unix/Linux/Mac里打开的话,在每行的结尾可能会多出一个^M符号。

目前大部分的编辑器和IDE都支持这几种换行符(除了notepad),但是跨平台协作项目源码到底保存为哪种风格的换行符呢?输出的文本需要保存为哪种风格的换行符呢?Git提供了一个解决方案——在跨平台协作场景时,会提供一个“换行符自动转换”的功能。

Git CRLF

Git默认在提交时将Windows换行符(CRLF)转换为LF,在拉取时将UNIX换行符(LF)替换成CRLF。我们可以通过设置autocrlf和safecrlf来设置具体的操作。

如果文件已经被替换过了,可以使用dos2unix 将文件转换为unix格式,然后在提交。(该命令用法可以参考我的另外一篇文章:dos2unix命令将dos文件转换为unix格式)

Author:leedaning
本文地址:http://blog.csdn.net/leedaning/article/details/53024162

你可能感兴趣的:(版本控制)