Gerrit:在添加/提交到本地git repo后,我收到:[远程拒绝](没有做出任何更改)尝试推送到远程

时间:2017-12-22 19:48:40

标签: git gerrit

以下是尝试推送到远程git repo时的输出:

Counting objects: 28, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (26/26), done.
Writing objects: 100% (28/28), 3.28 KiB | 1.64 MiB/s, done.
Total 28 (delta 22), reused 0 (delta 0)
remote: Resolving deltas: 100% (22/22)
remote: Processing changes: refs: 1, done
remote: (W) No changes between prior commit 4075c99 and new commit bbb6b31
To http://172.16.0.5:8080/chef-repo
 ! [remote rejected] HEAD -> refs/for/chef-feature-1.0 (no changes made)
error: failed to push some refs to 'http://172.16.0.5:8080/chef-repo'

注意:事先,我修改了我的最后一次提交

我看到更改在提交时得到确认,因此我不明白为什么我无法推送它们。

git diff 4075c99 bbb6b31显示没有输出放置我整天都在提交事情,最后一次推出gerrit是在20日(局部就像30分钟前一样)。

这是我当前的git log输出:

commit 8e3b769cf035a304d4b5bd796fd13737efaba01a (HEAD -> chef-feature-1.0)
Author: Aaron West <aaron.west@accenture.com>
Date:   Fri Dec 22 09:51:06 2017 -0600

    finalized oid1

    Change-Id: I1b2449a74a86aa5f02a75f5c768203a24860dfe1

commit 12b082629bfd14e63a7dca8a5c43f41db23ca64b
Author: Aaron West <aaron.west@accenture.com>
Date:   Fri Dec 22 09:49:01 2017 -0600

    cleaned up the oid.erb

    Change-Id: I0b906bbcb4b7b25bac41524b96d5133965ea93ea

1 个答案:

答案 0 :(得分:1)

Gerrit拒绝推送,因为4075c99bbb6b31 相同的提交具有不同的哈希值

发生这种情况的最常见方式是修改提交(创建新的提交哈希),但实际上没有更改任何内容:

$ git push origin HEAD:refs/for/master
$ git commit --amend
... don't make any changes ...
$ git push origin HEAD:refs/for/master

然而,这不是唯一的方式。即使您最近的提交实际包含有效更改,还有其他方案会产生类似的错误。例如,如果您提前两次提交(两个未合并的Gerrit更改集),并且您对最近的提交进行了更改,但是不知何故意外地更改了以前的哈希(通常是通过修改提交或使用{{1 }}):

rebase -i

这可能是你的情况(并且它可能比2次提交更深)因为你日志中最近的两次提交都没有Gerrit抱怨的哈希值。

无论你是如何达到这种情况的,解决方案应该是相同的:获取 Gerrit的版本(确切的哈希匹配)承诺它的抱怨和樱桃挑选你的工作。在您的示例中,先前的提交是... two commits ahead of Gerrit ... $ git checkout HEAD~1 $ git commit --amend ... don't make any changes ... $ git cherry-pick master ... make some valid changes that you want to push ... $ git commit --amend $ git push origin HEAD:refs/for/master REMOTE REJECTED!

4075c99