Git 由于 Change-Id,推送失败
Git Push failed due to Change-Id
对我来说 Git 每当我尝试推送代码时,每次都会产生错误。使用以下命令
git push origin HEAD:refs/for/master
所以为了临时修复,我必须使用下面的命令
git commit --amend
然后手动将 Change-Id
添加到另一个 Whosebug question,这样就可以推送代码了。
但是如果我下次尝试推送任何其他代码,它将再次失败并出现相同的错误(请看下面)
Counting objects: 63, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (39/39), done.
Writing objects: 100% (63/63), 5.94 KiB | 0 bytes/s, done.
Total 63 (delta 22), reused 28 (delta 4)
remote: Resolving deltas: 100% (22/22)
remote: Processing changes: refs: 1, done
remote: ERROR: [2a1ab5e] missing Change-Id in commit message footer
remote:
remote: Hint: To automatically insert Change-Id, install the hook:
remote: gitdir=$(git rev-parse --git-dir); scp -p -P 29418 subodhjoshi@gerrit.ext.net.google.com:hooks/commit-msg ${gitdir}/hooks/
remote: And then amend the commit:
remote: git commit --amend
remote:
To ssh://gerrit.ext.net.google.com:29418/projectname/framework
! [remote rejected] HEAD -> refs/for/master ([2a1ab5e] missing Change-Id in commit message footer)
error: failed to push some refs to 'ssh://gerrit.ext.net.google.com:29418/projectname/framework'
所以我试着添加一个这样的钩子
$ scp -p -P 29418 subodhjoshi@gerrit.ext.net.google.com:hooks/commit-msg C:/GIT_Code_Base/unified-inventory/framework/framework/.git/hooks/
commit-msg 100% 4780 23.7KB/s 00:00
再次尝试推送,但以同样的错误告终。
我的问题是为什么每次我都必须在提交之前添加 change-Id
?此问题的永久修复方法是什么?
Gerrit 消息不言自明,只需执行以下操作:
1) 进入本地仓库目录:
cd LOCAL-REPO-DIR
2) 安装 commit-msg 挂钩:
gitdir=$(git rev-parse --git-dir); scp -p -P 29418 subodhjoshi@gerrit.ext.net.google.com:hooks/commit-msg ${gitdir}/hooks/
3) 修复您当前的提交:
git commit --amend
注意1:在第3步中,你不需要在提交中更改任何内容,只需运行 "git commit --amend" 命令,保存提交消息并退出。 Change-Id 将由 commit-msg 挂钩自动添加。执行 "git log" 检查是否正确添加了 Change-Id。
注意 2:从现在开始,每次创建提交时,Change-Id 都会由 commit-msg 挂钩自动添加。
对我来说 Git 每当我尝试推送代码时,每次都会产生错误。使用以下命令
git push origin HEAD:refs/for/master
所以为了临时修复,我必须使用下面的命令
git commit --amend
然后手动将 Change-Id
添加到另一个 Whosebug question,这样就可以推送代码了。
但是如果我下次尝试推送任何其他代码,它将再次失败并出现相同的错误(请看下面)
Counting objects: 63, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (39/39), done.
Writing objects: 100% (63/63), 5.94 KiB | 0 bytes/s, done.
Total 63 (delta 22), reused 28 (delta 4)
remote: Resolving deltas: 100% (22/22)
remote: Processing changes: refs: 1, done
remote: ERROR: [2a1ab5e] missing Change-Id in commit message footer
remote:
remote: Hint: To automatically insert Change-Id, install the hook:
remote: gitdir=$(git rev-parse --git-dir); scp -p -P 29418 subodhjoshi@gerrit.ext.net.google.com:hooks/commit-msg ${gitdir}/hooks/
remote: And then amend the commit:
remote: git commit --amend
remote:
To ssh://gerrit.ext.net.google.com:29418/projectname/framework
! [remote rejected] HEAD -> refs/for/master ([2a1ab5e] missing Change-Id in commit message footer)
error: failed to push some refs to 'ssh://gerrit.ext.net.google.com:29418/projectname/framework'
所以我试着添加一个这样的钩子
$ scp -p -P 29418 subodhjoshi@gerrit.ext.net.google.com:hooks/commit-msg C:/GIT_Code_Base/unified-inventory/framework/framework/.git/hooks/
commit-msg 100% 4780 23.7KB/s 00:00
再次尝试推送,但以同样的错误告终。
我的问题是为什么每次我都必须在提交之前添加 change-Id
?此问题的永久修复方法是什么?
Gerrit 消息不言自明,只需执行以下操作:
1) 进入本地仓库目录:
cd LOCAL-REPO-DIR
2) 安装 commit-msg 挂钩:
gitdir=$(git rev-parse --git-dir); scp -p -P 29418 subodhjoshi@gerrit.ext.net.google.com:hooks/commit-msg ${gitdir}/hooks/
3) 修复您当前的提交:
git commit --amend
注意1:在第3步中,你不需要在提交中更改任何内容,只需运行 "git commit --amend" 命令,保存提交消息并退出。 Change-Id 将由 commit-msg 挂钩自动添加。执行 "git log" 检查是否正确添加了 Change-Id。
注意 2:从现在开始,每次创建提交时,Change-Id 都会由 commit-msg 挂钩自动添加。