您的位置 首页 java

Pre-commit和post-deploy已死,请用Git分支

熟悉版本控制的人知道,在项目源代码控制流程中(预提交)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才可以合并得到其他分支

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

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

gitlab问题看板

gitlab MR列表

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

gitlab DevOps全生命周期管理

文章来源:智云一二三科技

文章标题:Pre-commit和post-deploy已死,请用Git分支

文章地址:https://www.zhihuclub.com/189907.shtml

关于作者: 智云科技

热门文章

网站地图