gitlab合并分支到master_Pre-commit和post-deploy已死,请用Git分支

Gitlab CEO Sid Sijbrandij认为预提交(pre-commit)和部署后(post-deploy)代码审查不再适用,主张使用Git分支提高效率。他认为Git分支能提供更好的代码评估和审查,而预提交审核难以跟踪,部署后审查在代码已验证的情况下修改风险高。Sid建议在代码投入生产前通过分支进行审查。
摘要由CSDN通过智能技术生成

熟悉版本控制的人知道,在项目源代码控制流程中(预提交)Pre-commit预提交和部署后代码审查(post-deploy)是用来做代码提交控制,提高代码质量的有效的方法。这些方法在Git大流行的今天还有意义么?前一段时间著名Git服务器厂商Gitlab公司CEO Sid Sijbrandij撰文发表了他的看法认为"Pre-commit和post-deploy已死,应使用更有效的Git分支,本文虫虫跟大家一起来解读下sid的观点。

Pre-commit预提交审核

预提交审核要求在提交之前检查代码是否存在错误。Sid Sijbrandij表示,预先提交审核是有意义的,新代码在引入代码库之前需要用他来做评估。但是通过分布式版本控制,你可以用Git分支来做同样的事情。在Git之前,分支使用代价太高,在Subversion等基于文件和目录复制分支的版本控制系统中无法时常使用。

post-deploy部署后代码审查

部署后审查会定期检查代码库中的改进部分。部署后审查通常定期进行,用来检查代码库的部分功能并确定是否可以进行改进。根据Sid的说法,这种方法已经没有意义,因为"代码已经在部署时,在生产环境中验证了,......所以你肯定不愿意再对它进行修改。"

此外,偶尔性检查代码库也没有意义。

"尽管那里可能存有技术债务,但是至少它不会影响其他代码,"Sid解释说。 "你对技术债务有一定的兴趣,但是取决于你的技术债务对你代码库的影响有多大。代码没有太多变化,它正在被执行,至少它是不会影响其他代码。总是会有技术债务,而且你总是会在有限的时间内审查和解决问题。专注于当前活跃的代码,这是最需要关注的地方。 "

Git分支更有效率

Sid说,可以使用Git分支来确保代码可以安全地引入代码库,与Pre-commit和post-deploy相比可以提高效率,而且Pre-commit很难跟踪。

"预先提交代码审查有些尴尬,因为没有一个很好的方式来引用它。它存在很多开发工具中,但你没有SHA或明确的方式来引用该版本。你很难知道运行的CI用的是那些代码。但是,如果你在提交后进行审查,你就可以对每次审查打上commit、甚至版本的签,并且更容易看到所引用的代码。但是如果使用post-deploy进行代码审查时,人们心态是,"如果有效,就继续下一步。"

"如果需要改变代码,就会有额外的风险。如果你不做改变,那就是带来额外的技术债务 。你需要时常在两者之间做出选择。"

"你不会对技术债务积累保持警惕,并且要求某人改变正在线上使用的东西更难。最后,Sid认为预提交和部署后的代码审查已经死了,代码应该通过分支机构投入生产之前对其进行审查。

Gitlab基于Git分支的代码审核流程

git、github、gitlab的基于git分支流程之前虫虫的文章曾经专门介绍过,最后在此介绍下gitlab基于git分支的代码审核流程。gitlab的分支流程以master分支为基础,只有master接受的commit才可以合并得到其他分支

b6538209e9f6968c8bc9417789681b21.png

在该流程下,版本发布也是基于master分支来推进。

6071543123b290cf7f5927b1b75b5010.png

gitlab的分支流程折中了git和github两者的流程,更适合一般开发团队的使用,gitlab也基于该流程增加了很多代码审核的功能,将MR、代码审核、问题管理有机地结合在一个页面,并引入了专门的安全审核面板和基于角色的权限管理。

gitlab问题看板

2b372832776d3ba31c05cb21e403a566.png

gitlab MR列表

f2a35454b05b2aba2259a5897a6209ed.png

在gitlab流程结合cicd自动化栈实现了全栈DevOps生命周期管理。

gitlab DevOps全生命周期管理

70eeb2c0d905c0b0a5ccdab814bf13e6.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值