git换行符之autoCRLF配置

关于git换行符处理的问题,我查了一查,自己的设置中,global-config中设了autocrlf=false,systemwide中将autocrlf设成了true.
关于配置的作用域,systemwide>global>local。local没有配置,global会覆盖systemwide的配置,因此最终生效的是“autocrlf=false”。
这句的意思是“在提交与检出代码的时候均不对换行符进行转换”,这个设置是在当时入职时,参照wiki上配置的,然后并没有深入了解其作用。现在把根换行符相关的配置说明列在这里:
首先crlf是windows下的换行符,而lf是unix下的换行符。

autocrlf =true 表示要求git在提交时将crlf转换为lf,而在检出时将crlf转换为lf。
autocrlf = false表示提交和检出代码时均不进行转换
autocrlf = input 表示在提交时将crlf转换为lf,而检出时不转换
我又检查了一下idea右下角那儿关于文件的换行符,使用的地crlf,,这表明当前使用的是CRLF换行符,而autocrlf又是false,这会使得代码仓库中出现混合换行符,git中另有一个配置项,名叫“safecrlf”默认值是“warn”,因此git在提交时会弹出关于这个问题的提示,然而我无知的忽略了它。。。——在某次操作中顺手将其设为了“不再提示”,这也是导致后来问题的一个原因。因为这么做的话,safecrlf的值就被改为了false.

因此,可以单击右下角这个换行符标志,将其改为“LF”,同时把全局配置改为autocrlf=input,以使仓库中只保留Unix换行符。

另外,git有一个safecrlf,默认是false,可以改成true,表示拒绝提交混合换行符的代码。当然这可能会造成烦人的提示,但对于windows下的特殊情况可以这样设置。它的具体配置含义如下:

safecrlf = true 表示 拒绝提交包含混合换行符的文件
safecrlf = false 表示 允许…
safecrlf = warn 表示警告

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 不同的操作系统有不同的换行符格式,跨平台协作时需要考虑版本工具(git)对换行符的处理 回车和换行 回车(Carr...
    小熊猜猜我有几颗糖阅读 14,281评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,853评论 18 139
  • CRLF, LF 是用来表示文本换行的方式。CR(Carriage Return) 代表回车,对应字符 '\r';...
    于晓飞93阅读 63,846评论 2 47
  • 好几个月没有与阿娇联系了,我自己都没意识到时间过得竟这么快,她怎么也没联系我呢?她最近很忙么?她在忙些什么呢?这样...
    墨非鱼阅读 631评论 0 0
  • 公司认证检查完毕,工作暂告一个段落,对于我来说呢,岗位机动,不固定,如今呢,不知道会做些什么工作。 现在特殊时期,...
    赵淇淇阅读 173评论 0 0