Gerrit rebase本地分支与上游主人

时间:2017-01-27 09:15:23

标签: git gerrit

我需要一些帮助,将社区重新分支推向我们的格斗。

我们有一个从社区项目中分出来的项目。早些时候我们没有使用gerrit所以rebase和推送很容易。但是现在看起来格格里特,事情让我感到困惑。

我需要使用上游发布分支来重新分配我们的分叉发布分支。

这是我到现在为止所做的事情

git checkout -b local_zoomba1 remotes/origin/zoomba1
git remote add upstream <upstream git repo>
git fetch upstream
git rebase remotes/upstream/stable/zoomba1

在此之后,我解决了一些冲突。然后添加了一个空提交来标记rebase

git commit --allow-empty -m "Rebased with community zoomba1 release"

现在开始有趣了:)

当我进行git审核时,它提示错误,即提交者邮件ID与我的ID不匹配。因此,我允许“伪造提交者”和“伪造作者”

现在它显示了所有提交但最终抱怨:

You are about to submit multiple commits. This is expected if you are
submitting a commit that is dependent on one or more in-review
commits. Otherwise you should consider squashing your changes
into one commit before submitting.

The outstanding commits are:
...
...
Type 'yes' to confirm, other to cancel: yes
remote: Processing changes: refs: 1, done
remote: ERROR: missing Change-Id in commit message footer
remote:
remote: Hint: To automatically insert Change-Id, install the hook:
...
remote: And then amend the commit:
remote:   git commit --amend
remote:
  • 当然,有许多提交没有更改-id(那些是'merge'提交)。我不能回去给他们分配一些随机的更改ID。我该怎么办?

  • 另外,我需要了解gerrit在遇到来自社区的未知更改ID时会如何反应?

  • 这一切都会受到一次大的提交吗?或者这不是要走的路?

  • 我可以绕过gerrit并将它们直接推送到git吗?

1 个答案:

答案 0 :(得分:1)

当然,您可以在一次大型提交中压缩所有社区提交并将Change-Id放在其上,但这不是最好的事情。我认为,在这种情况下,您不想查看所有社区提交,对吧?这项任务没有意义。因此,最好的方法是直接推动绕过Gerrit的分支。怎么做?

1)你需要在&#34; Push&#34;中获得ALLOW权限。和#34;推送合并提交&#34; &#34; refs / heads / *&#34;的类别参考

2)你需要推送到&#34; refs / heads / BRANCH&#34;而不是&#34; refs / for / BRANCH&#34;