关于CRLF的一些坑

CRLF这个东西(姑且这么叫吧?) 第一次见到是在初涉git的时候.
基于windows上使用时, 有一步基本配置是这样的:

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

当时只知道是windows与linux的换行有差异会导致代码导入导出有问题,也没深究.

今天来好好聊一聊.(特么地玩idea git的时候又碰到了…)
背景
我用idea写完一个git托管的项目中的一个功能,准备commit一下.弹出一个框:

这里写图片描述
虽然没碰过, 但大致也猜到了什么意思.

基于我电脑开始的配置,这里commit时有了一个问题, 问你想怎么提交修改中的换行.要不要git给你自动转换(CRLF to LF), 或者按你自己的配置(false)来?
这里是选true. 选择 [ Fix and Commit ]

下面附上一些查到的资料,当做笔记了.

windows : CRLF( 回车换行 \r\n )
Linux/Unix: LF (换行 \n)
Mac: LF(现在是换行, 以前是回车( Classic Mac )CR, \r )

1

Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF:

$ git config --global core.autocrlf true

2

Linux或Mac系统使用LF作为行结束符,因此你不想 Git
在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉
Git 在提交时把CRLF转换成LF,签出时不转换:

$ git config --global core.autocrlf input

3

这样会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。

如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在库中:

$ git config --global core.autocrlf false

没看懂就算了, 你记得如果是windows你就配置下:

$ git config --global core.autocrlf true

就行了.

Linux不会问这个的,都是默认.(嗯,我猜是这样~~)

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值