打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
开发的二三事:CRLF 和 LF
userphoto

2019.06.16

关注

最近使用VS打开某些代码文件的时候,突然发现有这么一个提示:

赶紧去查git的log日志。检查log时,发现很多提交的代码,两个文件之间,貌似没有任何的改动。但仔细一看,原来区别是每一行末尾的换行符。有些换行符是下箭头↓,有些换行符是键盘上回车键的那个符号,先向下,再向左的箭头。如下图所示:

上网一搜,原来不同操作系统的换行符是不一样的啊。 unix是b’\n’, windows是b’\r\n”,mac是b’\r’。真是一个操作系统一个模样,内部的存储byte不一样,从外部的编辑器还看不出来。unix 的 \n 就是 LF(Line Feed)类型了。windows是cr(Carriage Return)。现在知道区别了,在项目里只需要统一标准就行了。粗略一想:项目是c#开发,目前还是在windows平台,当然是使用CRLF了。 但是,如何对每一个成员提交的代码,都审核一下,使用\r\n的换行符提交呢?

还好,对于这个问题,GIT已经有标准的解决办法。通过git的设置,可以自动完成上面的操作。
设置如下即可:

git config --global core.autocrlf truegit config --global core.safecrlf true

上面第一行的意思是,如果有CRLF的换行符,在提交git时会自动转换成LF,但是在检出代码的时候会转换为CRLF。这样,VS就不会弹出提示了。
上面第二行的意思是,不允许提交包含混合换行符的文件。

也许有的同学就要问了。我按照CRLF提交,CRLF检出,不是更好么?但是毕竟上面的是一个global的设置,谁能保证组里面每一个人都在windows上开发,不做其他项目,谁能保证项目永远只在windows上运行呢?

后续的处理就很简单了。把我们项目中所有文件的换行都转为CRLF,提交到git中即可。从网上找了个脚本,修改了下,效果还不错,能够在三个系统标准之间相互转换,支持后缀名过滤。我放到gist上了,有需要的下载来看看:gist 地址

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Git故障解决方案
git转换换行符(回车)
[GIT] warning: LF will be replaced by CRLF问题解决方法
windows使用git时出现:warning: LF will be replaced by CRLF的解决办法 | Avalon
windows使用git时出现:warning: LF will be replaced by CRLF
Git 处理 行结束符
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服