无法将代码推向Gerrit Git存储库



我们的开发设置是一种:

用户代码==> gerrit repository ==> dev repository ==> int repository

当我尝试将代码推到Gerrit存储库时,下面的错误是

git/master% git push gerrit HEAD:refs/for/master

Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 1.05 KiB | 1.05 MiB/s, done.
Total 7 (delta 3), reused 3 (delta 0)
remote: Resolving deltas: 100% (3/3)
remote: Processing changes: refs: 1, done   
remote: ERROR: [1688e36] 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 use_abc@rbcm- 
gerrit.abc.mno.com:hooks/commit-msg ${gitdir}/hooks/
remote: And then amend the commit:
remote:  git commit --amend
remote: 
To ssh://abcd.mno.com:29418/datacompiler/DataCompilerDevelopment
! [remote rejected]    HEAD -> refs/for/master ([1688e36] missing Change-Id 
in commit message footer)
 error: failed to push some refs to 'ssh://user_abc@mno- 
 gerrit.abc.mno.com:29418/datacompiler/DataCompilerDevelopment'

我从错误消息中了解了问题是"[1688e36] missing Change-Id in commit message footer"

即,旧提交之一是缺少变更ID,这是推向Gerrit时必不可少的。

当我谷歌搜索时,我发现重新打算是纠正旧提交消息的技术。(git amend用于最新提交消息修改。但是在我的情况下,要纠正的消息很旧(

当我尝试执行重新攻击时,我会失去其他对该提交的承诺。

 git rebase -i HEAD~5
 pick a09061420 commit message 1.
 pick 046316704 commit message 2.
 pick b5df179e7 commit message 3.
 pick b58fc9c41 commit message 4.
 pick 646bc8899 commit message 5.

我想更改commit message 4.

我进行了以下修改:

 pick a09061420 commit message 1.
 pick 046316704 commit message 2.
 pick b5df179e7 commit message 3.
 reword b58fc9c41 updated commit message 4.
 pick 646bc8899 commit message 5.

我保存了文件并将其推开。但是我输掉了1-3的提交。

任何帮助将不胜感激!

您不会失去任何提交。但是,在推动更改之后,将更改Commit-4和Commit-5(646BC8899(的提交ID,因为您正在更改Commit4,因此其commit ID将被更改,并且commit-4是commit-for Commit-5,因此其ID因此也将更改。

我还觉得这不是您所看到的屏幕截图,因为您正在用〜10执行它,并且结果仅包含5个投入,您应该看到10个提交。如果不存在10个提交,那么您将获得错误。因此,在Commit4之后的所有提交都将具有具有相同内容的新ID。

例如,如果是 -

pick b4e6a4d commit message 1.
pick cf8782b commit message 2.
pick c05b513 commit message 3.
pick 4966621 commit message 4.
pick f4297e7 commit message 5.
pick 48eaf3e commit message 6.

您将其更改为:

pick b4e6a4d commit message 1.
pick cf8782b commit message 2.
reword c05b513 message changed from commit message 3.
pick 4966621 commit message 4.
pick f4297e7 commit message 5.
pick 48eaf3e commit message 6.

它将在按下后跟随:

b4e6a4d commit message 1.
cf8782b commit message 2.
f42f02f message changed from commit message 3.
f8a49c4 commit message 4.
3f4e71e commit message 5.
81f5af5 commit message 6.

最新更新