首先,让我承认我不是一个git-guru,甚至不是一个git-newbie。我们安装了gerrit,并且我能够对repo进行更改......有时候。以下是我遵循的步骤:
git add file.txt
git add file2.txt
.....等等
git commit -m"My awesome commit message"
git push origin master:refs/for/master
这10次中有9次,但是10次中有1次“我在提交消息页脚中缺少Change-Id”然后我执行git commit --amend,我可以看到提交消息在那里。
这是我咆哮的地方,因为我不明白为什么我会得到这个问题......有时候。当前提交--amend在顶部显示我的消息,空白行,然后在其中显示带有Change-Id:的行。然后是另一个空行和下面带有注释的正好行(由.... git添加?)
如何修复此问题以及如何永久修复它以便我再也无法解决?我承认,我缺乏知识 - 100%
答案 0 :(得分:2)
Gerrit要求Change-Id行必须位于提交消息的最后一段。
您需要了解为什么在Change-Id之后会有一些行。提交时是否有任何钩子被执行?
更新:
您的提交消息没有错:
通过commit-msg挂钩自动添加Change-Id行,它是正确的。
空白行也正常...它已自动添加,以便将您的消息与更改ID分开
评论的行是Git的东西......请注意:“以'#'开头的行将被忽略”。只是忽略它们。
保存提交后执行:
git log
验证您的提交。
那么,问题是什么?为什么Gerrit报告“缺少Change-Id”?
因为可能问题不在最后一次提交中!可能问题(缺少Change-Id)是在父提交上。执行“git log”命令并检查您的提交历史记录,查找没有Change-Id的任何新提交。
答案 1 :(得分:1)
This seems to be a requirement of Gerrit
With this error message Gerrit rejects to push a commit to a project which is configured to always require a Change-Id in the commit message if the commit message of the pushed commit does not contain a Change-Id in the footer (the last paragraph).
This error may happen for different reasons:
1. missing Change-Id in the commit message 2. Change-Id is contained in the commit message but not in the last paragraph
答案 2 :(得分:0)
在项目的.git/hooks文件夹中检查并添加commit-msg文件。然后做一个 git reset HEAD~ 然后在添加文件后推送代码更改