使用Gerrit / GitLab

时间:2016-04-20 14:03:53

标签: git merge gitlab gerrit

我们决定使用GerritGitLab进行代码审核。

这是我们的提交历史指南:

  • 每个任务都应该在另一个分支上开发,而不是在主分支上开发。
  • 在我们提交之前,我们有一些工作来确保代码质量(例如代码审查)
  • 为每个分支使用rebasemerge --no-ff来阐明分支提交历史(任务)

git图是这样的:

enter image description here

我们可以轻松阅读这些任务。

如果我们使用Gerrit

项目设置中有rebase按钮和merge always (merge --no-ff),但是我不知道如何使rebasemerge --no-ff始终由Gerrit进行ATOMIC操作

这意味着,当我提交合并到主分支时,在我的两步git操作完成之前,没有人可以提交另一个合并(rebasemerge --no-ff)。

如果不是原子,那么在我将我的分支重新绑定到主分支(HEAD)的最新提交之后,在我合并到主分支之前,有人可以提交一个合并,它将更改HEAD

git图就像这样(来自同一次提交的两个非快进合并):

enter image description here

有没有办法强制使用Gerrit以原子方式 rebase 非快进合并

如果我们使用GitLab

GitLab企业版支持rebasemerge --no-ff,但我们选择使用社区版。

是否可以自行将功能(原子rebasemerge --no-ff)添加到GitLab?这个功能的任何开源GitLab插件?

1 个答案:

答案 0 :(得分:0)

不,没有办法强制原子化rebase + submit(无论提交方法如何)。如何使用“必要的Rebase”方法?如果没有不必要的合并,您将获得非常“干净”的历史记录,如下所示:

O --- O --- O --- O --- O --- O  <= master branch
       \               /
        O ---- O ---- O          <= task branch