为什么我得到"错误无法推送一些参考"?

时间:2018-06-06 14:05:29

标签: git gerrit

我正在使用Git和Gerrit并尝试使用以下命令推送更改

 git push origin HEAD:refs/for/master

失败并显示以下错误消息

  

计数对象:54,完成。 Delta压缩最多使用4个线程。   压缩对象:100%(23/23),完成。书写对象:100%   (54/54),4.56 KiB | 0字节/秒,完成。总计54(delta 20),重复使用0   (delta 0)remote:解析增量:100%(20/20)远程:处理   更改:refs:1,完成远程:ERROR:[041a9f9]缺少更改ID   提交消息页脚远程:远程:提示:自动插入   Change-Id,安装hook:remote:gitdir = $(git rev-parse   --git-DIR); scp -p -P 29418 urid@gerrit.ext.net.something.com:hooks/commit-msg $ {gitdir} / hooks /   remote:然后修改commit:remote:git commit --amend   remote:要ssh://gerrit.ext.net.something.com:29418 / Project / FolderName   ! [远程拒绝] HEAD - > refs / for / master([041a9f9]缺失   提交消息页脚中的更改ID错误:无法将某些引用推送到   ' SSH://username@gerrit.ext.net.something.com:29418 /项目/文件夹名称'

所以如上面提到的错误消息我在命令

下面运行
--git-dir); scp -p -P 29418 urid@gerrit.ext.net.something.com:hooks/commit-msg ${gitdir}/hooks/

,输出

  

提交-MSG
  100%4682 23.0KB / s 00:00

所以这意味着在我运行命令

之后,钩子在我的项目工作目录中正确下载了
git commit --amend

它显示正确的Change-Id: I55862204ef71f69bc88c79fe2259f7cb8365699a,并且在documents中仅在最后一行显示。

但是我仍然无法推动更改,我试图从question获得帮助,但仍然失败了同样的消息。

更新1 这是

的输出
$ git log
  

commit 10690fb1b829981852855aecaab0dfd7aaf9997f(HEAD - > master)   作者:作者姓名

     

日期:周六6月6日18:42:25 2018 +0530

SUREREQ-6877:Support of PATCH and OPTIONS

Change-Id: Ic7f36b90832078afa740b1138cb35829456f389d
     

commit 041a9f9deeae886c9771995a1463d40ca2d3fa3c合并:e265b88b   7f2ec936作者:作者姓名日期:周六6月6日17:33:48 2018 +0530

Merge branch 'master' of ssh://gerrit.ext.net.nokia.com:29418/SURE/sure-sw
     

commit e265b88b6194f65dedbf070b2be7f6c7018f6dec作者:作者姓名
  日期:周六6月6日16:59:58 2018 +0530

SUREREQ-6877:Support of PATCH and OPTIONS

Change-Id: I82382926d5acd8f9101bd3fc7bbb33bae85672da
     

commit 7603b20691b59de2f086ca5633314f89bcc963ab作者:作者姓名
  日期:周六6月6日16:53:04 2018 +0530

SUREREQ-6877:Support of PATCH and OPTIONS

Change-Id: I9312ebbe3d346ff97ca996c2219f204a55d1b9ac
     

commit 305fd46084f2a230f96b316f814ebf0eabd849c2作者:作者姓名
  日期:周六6月6日16:52:24 2018 +0530

SUREREQ-6877:Support of PATCH and OPTIONS

Change-Id: I011e3e3c22954774e99462c585a54cf9a0aad428
     

commit 8b1059922745a605851f4a9bd6cae3193a85c62c作者:作者姓名
  日期:周六6月6日16:49:15 2018 +0530

SUREREQ-6877:Support of PATCH and OPTIONS

Change-Id: Ic9d9e7e787f8a826f18f361cf0c20930c42bf04b
     

commit 7f2ec936f4133988194b14dca910fb921a6946be(origin / master,   原点/ HEAD)

3 个答案:

答案 0 :(得分:1)

似乎问题不在最后一次提交中。可能问题(缺少的Change-Id)是在父提交上。执行git log命令并检查您的提交历史记录,查找没有Change-Id的任何新提交。请记住:所有新提交都必须具有唯一的Change-Id。如果是这种情况,则需要使用git rebase -i命令将Change-Id添加到提交中。

答案 1 :(得分:0)

您提交041a9f9deeae886c9771995a1463d40ca2d3fa3c是合并提交,它没有更改ID。这可能是在本地创建的,Git不会在合并提交上运行commit-msg钩子。您需要确保在提交更改之前解决此问题。

答案 2 :(得分:0)

尝试 git pull origin -r master 以展开缺少 Change-Id 的合并提交。合并提交是多余的。