关于git gerrit的客户端push问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于git gerrit的客户端push问题相关的知识,希望对你有一定的参考价值。
$ git push
Counting objects: 16, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 329 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 2, done
To ssh://user@192.168.2.235:29418/test_project.git
! [remote rejected] dev1 -> refs/for/dev1 (no new changes)
! [remote rejected] master -> refs/for/master (duplicate request)
error: failed to push some refs to 'ssh://user@192.168.2.235:29418/test_project.
git'
我想问为啥我master会被拒绝??本人新手。。
error: unpack failed: error Missing unknown 613fd2557fba30aff2dbd51c3807cc57561bab08
fatal: Unpack error, check server log
To ssh://newptone@review.ustack.com:29418/neutron.git
! [remote rejected] HEAD -> refs/publish/datong (n/a (unpacker error))
error: failed to push some refs to 'ssh://newptone@review.ustack.com:29418/neutron.git'
Git push remote rejected {change ### closed}
是因为和关掉的提交对应的Change_id一样导致的。
另一种可能是cherry-pick导致的:
之前提交的时候因为有merge,所以在gerrit服务器上审核的时候,我给abandoned了,因此从新处理提交的时候就出现了相同的tree, parent, author, committer以及log原文,这也就不难怪change-id也相同了。
添加一次可能导致Change-ID相同的情况,新的分支的提交是从另外的分支上cherry-pick过来的,所以当abandoned一次之后,再次cherry-pick时,Change-ID作为提交记录一并cherry-pick过来了,所以会重复。
简单的办法就是执行git commit --amend 删掉change_id就可以了,保存退出后会自动生成一个新的change_id,再次执行push就可以推到库了。
参考:
https://stackoverflow.com/questions/11972384/git-push-remote-rejected-change-closed
以上是关于关于git gerrit的客户端push问题的主要内容,如果未能解决你的问题,请参考以下文章