git配置中的core.autocrlf和core.safecrlf

文章介绍了在使用Git时遇到的不同操作系统间换行符不兼容问题,以及如何通过配置core.autocrlf(true,false,input)和core.safecrlf(true,false,warn)来解决。建议Windows用户设置core.autocrlf为true,Linux和Mac用户设置为input,以确保文件在不同系统间的兼容性。
摘要由CSDN通过智能技术生成

前言

使用git作为版本管理工具的朋友们,有没有遇到更新完同事写的脚本无法运行的问题?逻辑正确的脚本换台机器不能运行了多半是换行符捣的鬼,修改git中的core.autocrlf设置即可解决问题,那么autocrlf是什么意思呢?我来简单件解释下。

core.autocrlf

autocrlf 是三部分的缩写 auto-cr-lf,分开来看应该是3组词 auto/carriage-return/linefeed,直译的话就是自动回车换行。

还是说下前面的问题,这是因为 Windows 使用回车(CR)和换行(LF)两个字符来结束一行,而 MacOS 和 Linux 只使用换行(LF)一个字符来结束一行。

当你在Windows下用常见编辑器写一个Shell脚本是,直接拿到Linux去执行很可能会报错,而在Linux编辑的文件拿到Windows环境下打开通常会显示成一行。

git 作为一个多人共同使用的版本管理工具,使用者的系统可能是Windows、Linux或者是Mac中的任意一种,所以在共同操作一个文件时就会造成换行符混乱,这时就要用到 core.autocrlf参数了。

core.autocrlf 参数不仅影响检出时的换行符装换,还会影响提交时的换行符转换,共有 truefalseinput 三种可选值

# 提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true

# 提交和检出时都不转换
git config --global core.autocrlf false

# 提交时转换为LF,检出时不转换
git config --global core.autocrlf input

根据他们的定义我们可以选择一种保险的方式,在windows系统上设置为 true,在 Linux 和 Mac 上设置为 input,如果所有使用者仅在统一系统下工作,设置成 false 就好了。

core.safecrlf

前一个 autocrlf 大家听到的应该比较多,而这个safecrlf可能很多人是第一次听到,它的默认只是false,若果改成true表示拒绝提交混合换行符的代码,也就是说如果你的代码中同时包含两种系统中不同的换行格式会被禁止提交,如果设置成 warn 表示只提出警告但可以提交。

总结

  • 多人合作的git库如果下载之后,其中的脚本不能直接运行先看看是不是换行符搞的鬼
  • Windows平台建议设置 git config --global core.autocrlf true
  • Linux平台建议设置 git config --global core.autocrlf input
  • 可以使用工具 dos2unixunix2dosLFCRLF 相互转化

==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==

一代文豪东坡居士,却写多篇祈雨文~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlbertS

常来“玩”啊~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值