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

今天学习git的时候出现了一个报错:

$ git add readme.txt readme.txt
warning: LF will be replaced by CRLF in learngit/readme.txt.
The file will have its original line endings in your working directory

查阅了一些博客,才知道原因是windows系统的换行符和Unix下的换行符不同,但是git会帮我们自动进行换行符的转换,所以出现了这个warning

解决的方法就是,禁止自动转换:

git config --global core.autocrlf false

运行上列代码,再次进行git add的时候报错就解决啦

知识拓展

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格式,然后在提交。

感谢以下博客!
https://blog.csdn.net/leedaning/article/details/53024162

扫描二维码关注公众号,回复: 4740994 查看本文章

猜你喜欢

转载自blog.csdn.net/Candle_light/article/details/85270440