我尝试推送我已经提交的新补丁集。我使用命令
git push origin HEAD:refs/for/master
但现在我遇到了问题,已经推送的提交是使用gerrit webinterface从其他gerrit用户重新设置的。 因此,格里特告诉我:
No changes between prior commit xxxx and new commit xxxx
现在我认为我必须拉出已经重新设定的补丁来解决这个问题。但如果我试着
git fetch master
或
git pull
git告诉我:
Already up-to-date
所以我无法拉出重新设定的补丁集。 有人可以帮忙吗?
答案 0 :(得分:5)
由于您在gerrit中推送了一个新的补丁集,因此更改应该在现有的提交SHA散列之上。
由于重新提交的提交是gerrit的本地(也可能是对其进行重新命名的用户)并且尚未提交给master,因此您无法直接从master获取/提取,因为它在远程分支中不存在。
您需要使用gerrit URL从gerrit获取提交到本地仓库,然后合并/重新定位您的本地仓库。 gerrit refspec应具有以下格式。
git fetch <Gerrit URL> <refs/changes/<change id>/<gerrit id>/<patch set #>>
当我们挑选一个提交时,也报告了这个git push问题,该提交应用了某些现有提交引入的更改但创建了一个新的SHA哈希,我们尝试在这个新的本地提交之上推送更改。