【Git实践】大型项目合并分支小技巧

编程

我们一般会有两个分支,dev分支,作为平时开发分支;master分支,作为上线分支。上线前会使用merge或者rebase将开发分支合并至主干分支,而后编译打包部署至回归测试环境或者生产环境。

这在一般情况下是正常的。但是,想象一下,在大型项目中,经常是几十人在同时开发,同时进行的项目需求会有十几个。按照之前所述,每个人都会基于开发分支,检出自己的需求分支,开发完成后,再将需求分支合并至开发分支,而后再合并至主干分支。正常合并时,需求分支上有多个提交,合并至其他分支时也会有相应数量的提交。时间长了以后,分支上会有非常非常多的提交记录。但是,我们在进行开发时,可能会有一些无用的提交,比如,我可能是为了打个日志、暂存一下修改的内容等等。这是就会添加一些无用的提交。

为了解决这种情况,Git在merge命令,给出了--squash选项,这个命令的作用是:进行分支合并时,使用单个提交来替代合并。直白点,合并分支后,多个提交记录合并为单个提交记录。这样提交数量就少了很多,分支上也干净了许多,一个提交就代表了你做的这个需求。

示例如下:

branch1从master检出,从1处开始,有4个提交记录数,合并至master时未加--squash选项,master有同样的提交记录数。

branch2从master检出,从5处开始,有3个提交记录数,合并至master时使用了--squash选项,master分支只有一次提交记录。

总结

优点

主干分支干净,提交记录数少,一个需求一个提交。和rebase很像。

缺点

合并至主干后,若想回滚需求分支多次提交记录中的某条提交记录,则无法办到,只能手工修改代码,再次进行提交。

欢迎关注我的公众号:张恒强的学习笔记

以上是 【Git实践】大型项目合并分支小技巧 的全部内容, 来源链接: utcz.com/z/514112.html

回到顶部