git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符

当git在不同操作系统间处理文本文件时,换行符差异可能导致文件哈希变化,引发问题。本文介绍了如何通过设置.gitattributes文件,将特定文件标记为二进制,防止git修改换行符,以及git核心配置core.autocrlf的工作原理,以确保代码仓库的稳定性和跨平台兼容性。
摘要由CSDN通过智能技术生成

前些天有位小伙伴告诉我说 git 改了某个重要文件的换行符,导致文件的哈希变了,于是文件校验出现错误。之前一直没问题而最近才有问题是因为最近换了部署服务器,git 的换行符配置不一样。

其实,我们不应该让代码仓库如此容易受到外界环境的影响。所以本文会解释 git 的全局配置如何影响了 git 对换行符的处理,然后说说如何彻底解决这个问题。


关于换行符

  • \r = CR = Carriage-Return = 回车
  • \n = LF = Line-Feed = 换行
  • \r\n = CRLF = Carriage-Return Line-Feed = 回车换行

Windows 下默认的文本换行符是 \r\n,Linux 下默认的换行符是 \n,Mac 下默认的换行符是 \r。因为这些差异,如果某部分文本文件会跨操作系统处理,那么换行符的处理就必须考虑了。git 允许开发者设置如何处理换行符在跨平台上的处理方式,不过不合适的设置可能带来文件发生不期望的修改。

问题

问题本身在本文一开始已经说得比较清楚了,现在疏理一下:

  1. 有个文本文件,被 git 改了换行符,导致哈希变化,文件校验出现了错误;
  2. 部署服务器以前 git 全局配置和现在不同,所以以前没问题,现在出了问题。

解决

当时,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值