大家好,我是甜甜。分享的内容是工作中的一些小事。记录下我是如何被gitconfig骗走,导致CI验证失败的。事故原因我解决了这个bug,去掉了,就顺利运行了。“高高兴兴”完成了单测,养了个mr,CI验证居然被封了。图1当时心情复杂,就点了Details。看了半天,也没有有价值的错误提示,然后干脆打开流水线,看看蓝盾里面哪条子排线有问题。找了半天,问题终于找到了。..图2离谱,为什么我的git邮箱里有QQ邮箱。..为了验证我的分支是否存在上述问题,我不得不检查:gitlog|grep'Author'|head当我看到结果时,我惊呆了:图3中居然有一条commit记录,真是一个qq邮箱,东西大概都清楚了。之前master分支有问题。我把项目删了,又拉了master分支。由于我全局配置的gitconfig是我日常邮箱的问题,所以没注意这个问题,现在CI验证失败。那么问题的解决方法就是:修改commithistory怎么解决,于是google了个解决方法,修改githistory提交commit信息(重写历史),文档链接:https://www.jianshu.com/p/0f1fbd50b4be大致意思是通过gitrebase命令来完成操作:gitrebase-iHEAD~3//修改最后三次的信息,会得到如下信息。这里的commitlog是和gitlog倒序排列的。我们要修改的日志信息排在第一位:1pick2275781shouldfindmethodfromparent2pick223fc80unittestcase3pick9ac1179updatetestcase45#Rebase79db0bd..9ac1179onto79db0bd(3commands)6#7#Commands:8#p,pick=usecommit9#r,reword=usecommit,editage1#commites,butage1#commitesbutstopforamending11#s,squash=usecommit,butmeldintopreviouscommit12#f,fixup=like"squash",但丢弃这个commit的日志消息13#x,exec=runco??mmand(therestoftheline)usingshell14#d,drop=removecommit15#16#Theselinescanber-ordered;theyareexecutedfromtoptobottom.17#18#IfyouremovealinehereTHATCOMMITWILLBELOST。#22#Notethatemptycommitsarecommentedout我们可以根据Commands信息修改信息来选择我们需要的参数,最终达到我们的目的。其他思路想到我修改的代码,其实和主代码master差别很大,所以我可以回滚代码,根据我们的id回滚到指定的版本。主要命令是gitreset,然后选择相应的参数也可以满足我们的需求。对于复位,通常有三个命令。找了一篇不错的文章,分享一下:https://www.jianshu.com/p/c2ec5f06cf1a一般来说,根据不同的场景,有hard、soft、mixed三种模式。做出选择。最后不说了,我去写个bug。
