Gerrit:将多个提交合并为一个"更改"

Non*_*nos 38 git gerrit

作为git最佳实践,应该经常提交,但要查看代码,您可能需要一次查看由多个提交组成的修补程序.有没有办法可以审查多个提交并立即合并或拒绝?

Emi*_*Sit 32

有一件事你可以将壁球合并到一个临时分支,然后发布该更改以供审查.

git checkout -b feature
git commit -m "start feature"
...
git commit -m "finish feature"
git checkout -b feature-review master
git merge --squash feature
git commit
Run Code Online (Sandbox Code Playgroud)

现在,您的feature-review分支将包含相对于同DIFF masterfeature没有,但只有一个单一的提交.

  • `git merge --squash`将重写历史记录,不允许你在功能上使用`git bisect` (5认同)
  • @summerbulb 是的,这正是我这个解决方案的问题。我通常不希望将一堆提交压缩为一个巨大的提交。它会使将来阅读 git 历史记录变得困难,从而导致各种问题。一般来说,我更喜欢小型的独立提交,但 Gerrit 使这很难做到。 (2认同)

Bra*_*rad 18

不,Gerrit目前不支持将批量提交纳入一次审核.但是,还有其他几种选择.

在$ DAYJOB,我的团队使用功能分支进行更大的更改.较小的提交将单独审阅/合并到功能分支,但只有在所有内容都处于良好状态且所有开发人员都满意的情况下才会合并功能分支.

Gerrit还支持主题分支 - 这是分组相关提交的便捷方式.它们在文档中进行了简要讨论.这些提交仍必须单独审核/合并,但可以在Web UI中快速组合在一起.