最近在windows下使用Git,发现不时没有修改过的文件要提交,对比发现文件全部修改,但找不到不一样的地方,Baidu后怀疑是换行符的问题,因为Windows和Linux的换行符不一样,这个和git客户端配置有关系,如果每个人客户端配置不一样同样会出现该问题.
关于不同系统的换行符问题:
UNIX/Linux : 0x0A(LF), Mac OS:0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。
DOS/Windows : 0x0D0A(CRLF)作为换行符。
关于编码和换行符设置在安装“Git for windows”的时候,在“Configuing the line ending conversions”页面其实已经给出了提示
说明里已经标的很清楚了:
1.Checkout Windows-styl,commit Unix-style line endings
签出时LF转为CRLF core.autocrlf=true
2.Checkout as-is ,commit-Unix-style line endings
签出时不改变任何内容,提交时CRLF替换为LF core.autocrlf=input
3.checkout as-is,commit as-is
签出签入都不做任何转换保持原样 core.autocrlf=false
指令设置
1.修改git设置 core.autocrlf=input.检出时不转换,提交转换为lf,这样可以避免提交windows换行符的情况.如果是在当前仓库要求 把--global去掉即可。
git config --global core.autocrlf input
2.拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
TortoiseGit设置:
由于使用的是VS比较无法看到换行符效果这里使用TortoiseGit进行比较,在比较窗口的右下角可以看到编码 换行格式等信息
测试环境WIN10+VS2013+TFS2015+GIT 2.10.1
在VS2015中设置后依然无法提交的问题,直接全部不检测不转换(只在windows单平台的时候可以这样操作哦)
git config --global core.autocrlf false
git config
--global core.safecrlf false
原文参考:
git官方说明
github
Git中的AutoCRLF与SafeCRLF换行符问题
GitHub 第一坑:换行符自动转换
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com