gerrit:push:先前提交和新提交之间没有变化.无法拉动变化

Ven*_*ntu 5 git gerrit

我尝试推送我已经提交的新补丁集.我用这个命令

git push origin HEAD:refs/for/master
Run Code Online (Sandbox Code Playgroud)

但现在我遇到了问题,已经推送的提交是使用gerrit webinterface从其他gerrit用户重新设置的.因此,格里特告诉我:

No changes between prior commit xxxx and new commit xxxx
Run Code Online (Sandbox Code Playgroud)

现在我知道我必须拉出已经重新设定的补丁来解决这个问题.但如果我尝试

git fetch master
Run Code Online (Sandbox Code Playgroud)

要么

git pull
Run Code Online (Sandbox Code Playgroud)

git告诉我:

Already up-to-date
Run Code Online (Sandbox Code Playgroud)

所以我无法拉出重新设定的补丁集.有人可以帮忙吗?

小智 5

由于您在gerrit中推送了一个新的补丁集,因此更改应该在现有的提交SHA哈希之上.

由于重新提交的提交对于gerrit是本地的(也可能是对其进行重新命名的用户)并且尚未提交给master,因此您无法直接从master获取/提取,因为它在远程分支中不存在.

您需要使用gerrit URL从gerrit提取到本地仓库,然后合并/重新定位本地仓库.gerrit refspec应具有以下格式.

git fetch <Gerrit URL> <refs/changes/<change id>/<gerrit id>/<patch set #>>
Run Code Online (Sandbox Code Playgroud)

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