gerrit:推:先前提交和新提交之间没有变化。无法提取更改

gerrit: push: no changes between prior commit and new commit. Not able to pull changes

我尝试推送我已经提交的新补丁集。我使用命令

git push origin HEAD:refs/for/master

但现在我遇到了问题,一个已经推送的提交是从另一个使用 gerrit web 界面的 gerrit 用户重新定位的。 所以 gerrit 告诉我:

No changes between prior commit xxxx and new commit xxxx

现在我想我必须拉出重新设置基础的补丁集来解决这个问题。但是如果我尝试

git fetch master

git pull

git 告诉我:

Already up-to-date

所以我无法提取重新设置基础的补丁集.. 有人可以帮忙吗?

由于您要在 gerrit 中推送新补丁集,因此更改应该位于现有提交 SHA 哈希之上。

由于变基提交是 gerrit 本地的(也可能是变基的用户)并且还没有提交给 master,你不能直接从 master fetch/pull 因为它不存在于远程分支。

您需要使用 gerrit URL 将提交从 gerrit 提取到您的本地存储库,然后 merging/rebasing 您的本地存储库。 gerrit refspec 应具有以下格式。

git fetch <Gerrit URL> <refs/changes/<change id>/<gerrit id>/<patch set #>>

这个 git 推送问题在我们挑选一个提交时也会报告,它应用了一些现有提交引入的更改但创建了一个新的 SHA 哈希,我们尝试在此基础上推送更改新的本地提交。