我们(git/gerrit newbs)试图使用具有特征分支的gerrit。我们试图实施的工作流程如下:Gerrit跟踪功能分支?
- 用户创建一个功能分支,用
git push -u origin users-branch
直接将其推送到远程回购(无评论)。 - 由于变更堆积在主分支中,用户确实需要
git pull --rebase origin master
(需要--rebase
,否则git创建合并提交,并且合并提交不能通过gerrit推送)。 - 用户继续将其更改推送到远程回购
git push --force origin users-branch
(--force
需要,因为在上一阶段--rebase
;我正在寻找更好的方法来执行此操作)。 - 其他用户可以通过推送自己的更改来为功能分支做出贡献。
- 当功能准备就绪后,用户将其推入
git push origin HEAD:refs/for/master
进行查看。
最后一步不起作用,因为在任何阶段推送给gerrit的提交都无法再次推送。
gerrit手册建议修改您想要再次提交的提交。这看起来很复杂且容易出错。
如果用户从不将他的更改推送到远程回购,这一切都可以正常工作,因为gerrit在被推送审查之前不会看到更改。但这正是我们不喜欢的。
对功能分支使用不同的回购似乎是可能的,例如gerrit从不会看到重复的变更ID,但这又似乎是不必要的复杂化。
有没有办法做到我们想要的安全和优雅?
*合并提交不能通过gerrit推送*您可以重新配置这个。但是,也许你不想要那个,我会理解的 –
如果你不想(大多数)承诺被审查,那么使用gerrit有什么意义?我认为这是它最大的优势之一,不允许任何人推动任何东西,除非它已被审查 –
@TimCastelijns我希望所有提交到主和发布分支进行审查,但不是功能分支。 –