最近干了一件特别羞耻的事情

333 阅读2分钟

怎么说呢,这个标题我实在不知道应该怎么写。

就有一天下午,跟人开了一个半小时的会,然后开完会之后回来pair写代码,脑袋蒙蒙的, 因为在开会之前就写的差不多了,然后开完会就再修改修改就准备提交了,结果等push完代码我打算去提pr的时候,突然发现,我靠我的分支呢,咋没有,结果一看push到master了,内心慌得一批,赶紧去build的停了,因为push到master会自动部署到production上。

然后就很好奇,按道理应该是在git里面设置了对master分支的保护,为什么还能直接push上去呢。

本来想reset代码到上一次commit,然后再force push,但这样肯定是失败的。(问就是我试了)

后来仔细看了配置才知道,master只禁止了force push,对于普通的push,因为还是admin权限,可以直接push。

接着就想办法把push之后的代码revert回来,但是还要保留自己的更改,于是先从mater上切出来一个分支,保留改动的代码,然后回到master, revert到上一一个版本,也就是 git revert HEAD, 因为本身revert代码也会当成一次提交,所以就把这一次的revert的提交上去,然后正常push。这样master就回到上一次commit的版本了。

把master弄好了之后,pr还是要提的呀,然后就切到之前切出来的分支上,因为之前在master上已经commit过了,所以分支上也是有那一次的提交记录的,所以就直接push那个分支就可以了。

push完了之后,心想嗯解决了,可以提pr了,可是等我打开pr看跟master的diff的时候,什么都没有,两脸震惊,我代码呢。然后好像是git提示我要不要尝试切换base, 于是就把basecompare换了一下,也就是base(分支) compare(master),这样才看到了代码的改动。

可是这样不行啊,被review的人锤死吧可能,然后呢就在本地分支上,再reset到上一次commit(git reset commit-id),然后再重新提交所有的改动,最后再force push。

这样才把所有的事情都弄好了,虽然及时发现停止了,但是还是让人心惊胆战。 一个用了git辣么多年的人竟然干出了如此羞耻的事情。 太恐怖了。我去反思了。