我正在使用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 +0530SUREREQ-6877:Support of PATCH and OPTIONS Change-Id: I82382926d5acd8f9101bd3fc7bbb33bae85672da
commit 7603b20691b59de2f086ca5633314f89bcc963ab作者:作者姓名
日期:周六6月6日16:53:04 2018 +0530SUREREQ-6877:Support of PATCH and OPTIONS Change-Id: I9312ebbe3d346ff97ca996c2219f204a55d1b9ac
commit 305fd46084f2a230f96b316f814ebf0eabd849c2作者:作者姓名
日期:周六6月6日16:52:24 2018 +0530SUREREQ-6877:Support of PATCH and OPTIONS Change-Id: I011e3e3c22954774e99462c585a54cf9a0aad428
commit 8b1059922745a605851f4a9bd6cae3193a85c62c作者:作者姓名
日期:周六6月6日16:49:15 2018 +0530SUREREQ-6877:Support of PATCH and OPTIONS Change-Id: Ic9d9e7e787f8a826f18f361cf0c20930c42bf04b
commit 7f2ec936f4133988194b14dca910fb921a6946be(origin / master, 原点/ HEAD)
答案 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
的合并提交。合并提交是多余的。