git去掉换行符,惊天大坑
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。
引子
最近,在另一个老项目开发中,使用了一个海外通道平台。 就在昨天我遇到了一个非常奇怪的问题,几乎使我怀疑我的生活,事情是这样..
有一个代码文件,我做了简单的修改,部署上去验证时,在请求后端时,前端请求的地址是错误的,我仔细地查看了代码,发现请求地址是通过公共职能获得的,我根本没有移动那个功能。这不科学啊。改变一段时间是很困难的。我只是将下面的代码备份,直接通过Git恢复到我以前修改的状态,再部署,还是不行,呀呵,见鬼了??
然后我直接转到主干支店,重新部署,仍然不能。
唯一迫使我退出比赛的是,我让北京的同事在主机上部署代码,我没有太多的希望,结果,一切都很好..
然后,我与同事一起在郑州办公室部署,我的问题与我的一样..
这是什么意思? 同样的代码被部署在北京方面没有问题,在郑州方面没有问题??
我向上帝发誓,我从Git中获取代码,即使我没有修改任何东西,我也不能直接部署它!
经过十年的发展,这个问题确实是第一次,没有任何想法,问了几位前同事,也没有好想法。
转机
看看时间天色已晚,虽然心有不甘,但也只能先回家了。 顺带说一声,我办公室的电脑是一个窗口系统,还有一台Mac小型家庭电脑,有Mac系统,吃晚饭时,突然想到,既然没有障碍,为什么我不在家试一下这个电脑?
让我们立刻用这台家庭电脑检索代码,部署,刷新页面,哦,天啊,没事了!
接近真相
第二天我到办公室去, 又试着部署, 还是不能..
在消除与网络有关的问题后,基于多年的编程直觉,我想知道它与替换行有关吗? 打开VS代码,右下是真正的Windows系统CRLF(根据Windows系统rn所以我手动把这个代码文件转换为VS代码中的UnixLF格式,重新部署,没问题!
半小时换行是个问题!
但很快我又遇到了另一个问题。为什么北京的同事们也使用Windows电脑?他部署就没有问题,我们所有的代码都直接从Gitlab中提取出来,理论上,代码应该是相同的。我向他请求证明之后不久,他的CVS文件格式都排在行里LF,怪不得!
然后我上网搜索了VS代码来设置一个全球替换行格式,在设置之后发现没有任何效果,它设置了创建新文件时看起来的格式,它对现有文件没有任何效果。
这使我问到另一个问题,因为北京同事的当地发展环境的替代是LF他为什么要向Gitlab提交文件?CRLF呢?
是否有可能Git在本地检索时自动将我转换为行替换格式?
你甚至不说,经过一段时间的搜索,狗的日子,它真的足够聪明,把我转换成格式。
git有个选项autocrlf当设置为 true(Windows系统默认为 true),Git在本地引取和检索代码时自动转换文件为 trueCRLF格式与Windows系统兼容,在推向远程仓库时自动转换格式LF确保代码仓库中的文件匹配的格式Unix、Mac和Windows系统都兼容。
所以我们的gitlab代码仓库中的代码格式没有问题,我检查一下本地代码会自动变为CRLF当我将代码从本地部署到服务器时,问题就会出现。
解决方案
既然找到真正的凶手, 解决办法很简单.
打开命令行执行下列两个命令:
如果你用一只小龟, 就更简单了:
生活是真的,学习生活是真的。
XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com