我的工作场所开始使用 Gerrit 来管理我们所有的项目。我以前从未使用过 Gerrit。我正在尝试找出一个好的工作流程来使用它来提交代码以供审核。
我创建了一个分支foo
。我做出了 promise ,并将其推送给 Gerrit。然后我从 foo
开始创建一个分支 bar
,并对其进行了另一次提交。我也将分支 bar
推送到了 Gerrit。
我现在在分支bar
:
$ git branch
* bar
foo
现在我想开始对从 bar
到 foo
的 merge 进行代码审查。有人告诉我这个命令应该做到这一点:
$ git push gerrit HEAD:refs/for/foo
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Processing changes: refs: 1, done
To ssh://ram@gerrit/acme/my_project
! [remote rejected] HEAD -> refs/for/foo (no new changes)
error: failed to push some refs to 'ssh://ram@gerrit/acme/my_project'
如您所见,我收到错误(没有新更改)
。我问我们本地的 Gerrit 冠军为什么,他说据他所知,你不能 push Gerrit 上已有的代码审查代码,即使该代码位于不同的分支上。
看起来,如果我避免将分支 bar
推送到 Gerrit,我的问题就会消失,代码审查也会正常进行。 但我更希望能够推送我想要的任何 %&@# 而不会干扰代码审查。我喜欢推送分支。我喜欢将我的分支放在 Gerrit 上,因为这样我也可以将它们发送给其他人在网络界面上查看。
是否可以在 Gerrit 中进行代码审查,而不禁止我将分支推送到 Gerrit?
最佳答案
我认为你需要以不同的方式进行 merge
- 首先,在本地 merge 分支 - git checkout foo
然后 git merge origin/bar
- 其次,将 merge 提交从本地 foo 推送到远程 foo - git push gerrit HEAD:refs/for/foo
别忘了输入 changeId merge 提交。
一般来说,不需要对提交进行两次审查。您是否需要检查 merge 提交或 rebase 方法。如果您的分支不是特定的分支(例如开发与发布),请考虑使用 rebase
关于git - Gerrit: push 代码审查已在 Gerrit 上的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39275866/