这是我们的提交历史指南:
rebase
和merge --no-ff
来阐明分支提交历史(任务)git图是这样的:
我们可以轻松阅读这些任务。
项目设置中有rebase
按钮和merge always (merge --no-ff
),但是我不知道如何使rebase
和merge --no-ff
始终由Gerrit进行ATOMIC操作。
这意味着,当我提交合并到主分支时,在我的两步git操作完成之前,没有人可以提交另一个合并(rebase
和merge --no-ff
)。
如果不是原子,那么在我将我的分支重新绑定到主分支(HEAD
)的最新提交之后,在我合并到主分支之前,有人可以提交一个合并,它将更改HEAD
。
git图就像这样(来自同一次提交的两个非快进合并):
有没有办法强制使用Gerrit以原子方式 rebase 和非快进合并?
GitLab企业版支持rebase
和merge --no-ff
,但我们选择使用社区版。
是否可以自行将功能(原子rebase
和merge --no-ff
)添加到GitLab?这个功能的任何开源GitLab插件?
答案 0 :(得分:0)
不,没有办法强制原子化rebase + submit(无论提交方法如何)。如何使用“必要的Rebase”方法?如果没有不必要的合并,您将获得非常“干净”的历史记录,如下所示:
O --- O --- O --- O --- O --- O <= master branch
\ /
O ---- O ---- O <= task branch