博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git自动转换换行符(autocrlf)带来的问题
阅读量:5953 次
发布时间:2019-06-19

本文共 1064 字,大约阅读时间需要 3 分钟。

hot3.png

最近在使用Github时遇到个问题。

众所周知,在各操作系统下,文本文件所使用的换行符是不一样的。UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。但 DOS/Windows 一直使用 0x0D0A(CRLF)作为换行符。

Git提供了一个换行符自动转换功能试图解决这个问题—autocrlf,他包含了三种状态,true,input,false,详细内容可以看下面。Windows平台上的默认设置是true,这样在你签出代码的时候他会自动转换成你操作系统所使用CRLF,然后在提交的时候又自动转换成LF。

这个时候问题来了,autocrlf在Mac下默认设置成false,因为现在Mac也是用LF,按理说就没必要进行任何转换,但是如果你在windows操作系统上将版本库放在例如Dropbox这种云存储上,然后同步到Mac上,或者什么其他方式把windows文件引入到Mac下。那么在你提交的时候在Mac环境下不会自动将CRLF转换成LF,那么就会发现所有行都有改动。这个时候就需要设置成input。

Github上的建议配置,是在windows下将core.autocrlf设为true,在Mac和linux下设为input,这样就可以有效避免上述问题。

P.S.与换行符相关的命令

#AutoCRLF#提交时转换为LF,检出时转换为CRLFgit config --global core.autocrlf true#提交时转换为LF,检出时不转换git config --global core.autocrlf input   #提交检出均不转换git config --global core.autocrlf false#SafeCRLF#拒绝提交包含混合换行符的文件git config --global core.safecrlf true#允许提交包含混合换行符的文件git config --global core.safecrlf false#提交包含混合换行符的文件时给出警告git config --global core.safecrlf warn

P.S.S. git config 有三个作用域system,globe,local。优先级是local>globe>system。剩下的以后在研究

转载于:https://my.oschina.net/u/1189928/blog/808240

你可能感兴趣的文章
Apache优化
查看>>
Linux入门之Linux与Windows常见对比
查看>>
如何创建支持不同屏幕尺寸的Android应用(转载)
查看>>
python学习之面向对象学习进阶
查看>>
python学习之网络编程
查看>>
64位Java开发平台的选择,如何区分JDK,Tomcat,eclipse的32位与64版本
查看>>
谈Win32汇编
查看>>
sqlserver_identity
查看>>
其他的AdapterView——Spinner
查看>>
我的友情链接
查看>>
iOS UIWebView打电话
查看>>
PYB Nano 开发板的完整设计文档
查看>>
Eloquent JavaScript 阅读笔记一
查看>>
客户端浏览器Chrome过早断开连接导致Nginx报400错误的解决办法
查看>>
iOS开发进阶教程【第一季小试牛刀】
查看>>
[MVC4]初识.NET MVC4
查看>>
微软公有云魅力之Traffic Manager
查看>>
IP子网划分
查看>>
Kubernetes Secret
查看>>
我的友情链接
查看>>