Git gerrit:push:在先前提交和新提交之间没有更改。无法拉取更改

Git gerrit:push:在先前提交和新提交之间没有更改。无法拉取更改,git,gerrit,Git,Gerrit,我尝试推送我已经提交的新补丁集。我使用命令 git push origin HEAD:refs/for/master 但现在我遇到了一个问题,已经推送的提交是从使用gerrit webinterface的其他gerrit用户处重新进行的。 所以gerrit告诉我: No changes between prior commit xxxx and new commit xxxx 现在我想我必须拉重新设置的补丁来解决这个问题。但是如果我试着 git fetch master 或 git告诉我:

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

git push origin HEAD:refs/for/master
但现在我遇到了一个问题,已经推送的提交是从使用gerrit webinterface的其他gerrit用户处重新进行的。 所以gerrit告诉我:

No changes between prior commit xxxx and new commit xxxx
现在我想我必须拉重新设置的补丁来解决这个问题。但是如果我试着

git fetch master

git告诉我:

Already up-to-date
所以我没办法拉重定基面的补丁集。。
有人能帮忙吗?

因为您正在gerrit中推出一个新的补丁集,所以更改应该在现有提交SHA哈希的基础上进行

由于重新设置基础的提交是gerrit的本地提交(也可能是重新设置基础的用户的本地提交),并且尚未提交给master,因此无法直接从master获取/拉取,因为远程分支中不存在该提交

您需要使用GerritURL从gerrit获取对本地repo的提交,然后合并/重定本地repo。gerrit refspec应具有以下格式

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

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

您能试着可视化提交树的样子吗(ASCII艺术会很好)?我认为在不了解情况的情况下,不可能给出准确的指导。
Merged Commit A-->Commit under review B-->Commit under review C
Commit B在Web界面中被重新设置,Commit C在本地被更改。所以我尝试推送提交C,但gerrit告诉提交B没有任何更改。可能是这个错误:您的提交C是基于原始提交B还是基于重定基础的提交B?我的提交是基于原始提交B。我想我必须重新设置我的C提交的基础,但我不能重新设置它的基础,因为git认为我的回购是最新的。请澄清一下,当你说“重新设置基础”时,你是指字面上的重新设置基础(如在
git-rebase
中)?您的问题谈到了git pull,但由于可以将该命令配置为执行重基而不是合并,所以不清楚您到底做了什么。
git fetch <Gerrit URL> <refs/changes/<change id>/<gerrit id>/<patch set #>>