避免 gerrit/git 中的合并提交

Avoid merge commits in gerrit/git

场景是这样的。

  1. 开发人员 A 将提交 c1 推送到基于提交 c
  2. 的 gerrit
  3. 开发人员 B 将提交 c2 推送到同样基于提交 c
  4. 的 gerrit
  5. 审阅者在 gerrit 中合并提交 c1 和 c2。
  6. 当审阅者从 repo 拉取(使用 git pull --rebase)时,he/she 看到 3 个提交。

(最后显示在顶部,如 git 日志所示)

合并 "log_message_of_commit_c2" 到 master(这没有更改 ID)

log_message_of_commit_c2

log_message_of_commit_c1

在c1之后合并c2时,merge commit是gerrit自己创建的吗? 有什么办法可以避免这种情况吗? (除了开发者B rebasing 并重新提交c2,但这涉及到A 和B 之间的同步,这并不总是可能的)

谢谢, 萨米尔

合并提交由 Gerrit 创建。

您可以通过在 Gerrit 中使用 cherry-pick 策略来避免这种合并提交。参见:https://gerrit-review.googlesource.com/Documentation/project-configuration.html#submit_type