炸了!实习生把代码仓库搞得一团糟…
最近两周一直都挺忙的,不仅要带组里新来的实习生,也要统筹、协调我们研发小队的整体进度,属实是累到不行。
不得不说,作为一个程序员,最容易的事真的是写代码了,你让电脑干啥就干啥,你让它输出 1 就不会输出 2 。
跟写代码相比,协调、沟通、同步进度这些才是最耗费精力的。
1、心态炸了
这几天最让我焦头烂额的就是新来的实习生 git 操作太差了,差点把我们小组的代码仓库搞砸了。
这个实习生前段时间刚来,基础挺不错的。
在得知他的常用语言是 JavaScript,也使用过一些 Vue,就把组里的一个前端小需求交给他了。
这个小需求主要是实现一个 form 表单,然后通过 put 接口区更新一下表单两个字段,是不是听起来挺简单的。。。其实确实挺简单的,他也信誓旦旦地说没啥问题。
最后完成后就把我叫过去验收一下,我简单测试了一下,确定没啥问题,就让他推到 gitlab 仓库上去,如果有什么事情再叫我就是了。
然后转头就去忙我自己的事了。。。
结果就 BOOM!!!
不知道他怎么搞的,直接 push 到 master 分支去了,直接跨过开发分支和测试分支,直接合到 master 发布分支上去了。
这还不算什么。。。如果只是这样就还好,关键是他看有写代码冲突就直接在 master 分支上对已经成功发版的代码增删改!!!
OMG!!!所以就直接 BOOM了!
然后我就被 Leader 一顿批。。。也确实是我没说清楚,看他基础挺好的,想着最基本的 git 操作应该也是 ok 的,然后就被打脸了。。。
不过还好,问题不大,我丢给实习生一份 git 基本操作手册,告诫他两句就完事了。
没有什么人刚开始工作就什么都会,什么都懂。犯错没关系,重要的是要知道自己为啥错了就可以,下次不要再犯啦。
我在入职之初,Mentor 就是这么跟我说的,他会给我留出一部分犯错的空间,只要不是原则性问题,比如删库跑路,其余的都没关系。
所以,我也是这么跟我带的那个实习生说的。
人嘛,都是一步一步踩坑过来的,没有那么多天才,失败是成功他妈。
这里也简单说一下,团队合作开发项目和个人开发的一些区别,一些还在读书的小伙伴可要好好看下去哦。
2、个人开发
个人开发就比较简单,自己完成功能开发后直接 push 代码,因为全程都是自己一个人开发,所以在合并代码的时候也不会有冲突产生。
很多在校的学弟学妹们估计也是如此,一个人使劲鼓捣都没事。
可是正式工作后就不行啦,首先要学会的就是如何跟别人合作完成开发任务。
3、团队开发
一般来说,团队合作开发的话,每个人都需要在自己的功能分支 feat/XXX 上开发,最后一起合并到总的开发分支 dev 上,然后将开发分支 dev 合并到测试分支上,最后将测试分支合并到正式发布分支上。
其中总的开发分支一般叫做 dev 分支,正式发布分支一般是叫 main/master/release 分支。
这里我画了一张图帮助大家理解:
比如说有 A、B、C 三个人协助进行功能开发:
1、首先 A、B、C 三位小伙伴从总开发分支 Dev 上开辟自己的功能分支,分别是 feat/AXXX、feat/BXXX、feat/CXXX,也就是图中 feat/AXXX、feat/BXXX、feat/CXXX 的三条线;
2、然后在自己的开发机上进行开发,这里的开发机可以是本地环境也可以是一些云端的开发机。开发完毕后,再分别合到总开发分支 dev 上,也就是图中蓝色的三条线,在这个过程中可能会产生一些代码冲突,挨个 solve 即可;
3、接着在 dev 分支上确认所有功能开发完毕,进行简单自测,fix 一些 bug 后再向测试分支上进行合并;
4、这个时候就可以艾特测试组的同学来进行测试,测试通过后再合到 master 分支进行发布。
一般来说,基本的流程就是这样的,不同公司或许其中流程有些出入,不过问题不大,大致方向是如此的。
- EOF -
点赞和在看就是最大的支持❤️