仍在努力学习如何使用Gerrit及其过程.我在哪里做的步骤
change1
推动gerrit审查HEAD:refs/for/developchange2
gerrit审查HEAD:refs/for/develop两个提交都有gerrit Change-ID行
所以现在我想解决问题,change1
所以我做了
git checkout -b change1 <change 1's commit id>
Run Code Online (Sandbox Code Playgroud)
做出我的更改并提交(将Change-ID添加到提交消息)
git add .
git commit
Run Code Online (Sandbox Code Playgroud)
现在当我这样做
git push origin HEAD:refs/for/develop
Run Code Online (Sandbox Code Playgroud)
我明白了
! [remote rejected] HEAD -> refs/for/develop (squash commits first)
error: failed to push some refs to 'ssh://adrian@192.168.7.100:29418/CommunicationsLibrary'
Run Code Online (Sandbox Code Playgroud)
如何解决堆叠评论中的问题并将其发布到gerrit而无需创建另一个评论?
Tre*_*ell 17
如果您在Gerrit中有依赖性评论(也就是说,评论中的一个更改取决于同时审核的早期更改),并且您需要对之前的更改进行修改,则您实际上必须重新提交这两个更改(因为第二次更改取决于不同的"父"提交)
所以情况是你在主开发分支的一个分支中有两个提交,如下所示:
o master
\
o Commit A (in review, requires change)
o Commit B (in review, no changes required)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我通常做的是在第三次提交中进行Commit A请求的更改.我们的提交图现在看起来像这样:
o master
\
o Commit A (in review, requires change)
o Commit B (in review, no changes required)
o Commit C (modifications to Commit A)
Run Code Online (Sandbox Code Playgroud)
现在我做git rebase -i master
并重新命令Commit C在Commit A之后但在Commit B之前,然后将它压缩到Commit A.提交图现在看起来像这样:
o master
\
o Commit A' (Commit A, incorporating the changes from Commit C)
o Commit B' (the same changes made in Commit B, but applied to Commit A' instead of A)
Run Code Online (Sandbox Code Playgroud)
最后,git review
(或者您用来向gerrit提交更改的任何命令)将这两个提交重新提交给Gerrit.
正是由于这样的复杂性,大多数人强烈建议在单独的分支中处理每个不同的更改,然后在提交给Gerrit之前压缩到单个提交,而不是需要处理这些类型的情况,其中您有依赖的更改被审查同时.
归档时间: |
|
查看次数: |
22620 次 |
最近记录: |