我在一个大型团队工作并帮助提高稳定性和易于恢复,我们希望强制所有主题分支在合并之前进行重新定位和压缩到我们的主分支。
问题是我们团队的成员对类似rebase的工作流感到不舒服。
使用Gerrit是实现这一目标的好方法吗?
答案 0 :(得分:0)
是的,Gerrit可以做到这一点,但可以说Gerrit没有针对这个工作流程进行优化。
在$ DAYJOB,我们在主题分支上进行协作,在准备就绪时提交提交,当分支准备好合并回master时,我们首先将master合并到主题分支中。一旦主题分支与master保持同步,我们就会从主题分支合并回master。
使用rebase工作流的另一个选项是在所有内容准备好之前不要将提交提交到主题分支。提交需要长时间进行代码审查,开发主题分支的开发人员需要从Gerrit UI而不是发布的git服务器进行检查。
我已经通过Gerrit本身的一些功能来解决这个问题,它运行正常,但不尽可能顺利。一个例子 - 想象一系列提交A - B - C
。开发者1对B
进行了更改并上传了A - B' - C
。大约在同一时间,开发人员2对C
进行了更改并上传了A - B - C'
。开发人员2刚刚在不知情的情况下覆盖了更改B'
。
使用合并工作流程,这种情况是不可能的,因为更改B
已经发布且无法替换(忽略强制推动的可能性)。