2017-05-03 13 views
2

首先,我承認,我不是一個git-大師,甚至沒有一個git-新手。我們安裝了gerrit,並且有時候我能夠對repo進行更改。這裏是我遵循的步驟:的Git 格里特與遠程拒絕「缺少變化-ID在提交信息頁腳」

  1. git add file.txt

    git add file2.txt .....等等

  2. git commit -m"My awesome commit message"
  3. git push origin master:refs/for/master

這工作9個10次,但10次中有1次我得到「在提交消息頁腳中缺少Change-Id」然後我做了git commit --a修補,我可以看到提交消息在那裏。

這是我咆哮,因爲我不明白爲什麼我收到的問題......有時。當前提交 - 在數字頂部顯示我的消息,空白行,然後顯示Change-Id:在其中。然後另一條黑線,並低於意見剛剛線(由....混帳添加?)

我該如何解決這個問題?我如何永久修復它,這樣我再也爬不起來了嗎?我承認,這是一個缺少我的一部分知識 - 100%

這是我得到後:git的承諾--amend: enter image description here

+0

好吧,這只是令人討厭......我的提交信息下面有一個空行,另一個在Change-Id下面: –

+0

不......這是完全正確的......這是它的工作方式。 –

+0

SInce git-clone沒有下載生成Change-Id的hook commit-msg,你可以將這個commit-msg複製到Ubuntu的'/ usr/share/git-core/templates/hooks'中,並且'/ mingw64/share/git-core/templates/hooks'或'/ mingw32/share/git-core/templates/hooks'。因此,無論何時克隆或初始化git倉庫,該鉤子都可以自動部署到當前的倉庫中。 – ElpieKay

回答

1

這似乎是格里特

的要求

出現此錯誤消息Gerrit拒絕將項目推送到項目 ,該項目被配置爲在提交 消息中始終需要Change-Id(如果推送的提交的提交消息不包含頁腳中的 Change-Id) (最後一段)。

此錯誤可能發生的原因不盡相同:

1. missing Change-Id in the commit message 

2. Change-Id is contained in the commit message but not in the last paragraph 

Missing Change-Id in commit message footer issue

+0

這不是一個Gerrit問題......這正是Gerrit的工作原理。 –

+0

我的意思是,它與git本身無關。 – hspandher

+0

好的。對不起,我不瞭解你。 –

1

格里特要求的變化-ID線必須位於提交信息的最後一段。

你要明白爲什麼有是更改-ID後,一些線路。你提交時是否有任何鉤子被執行?

UPDATE:

沒有什麼不對您的提交信息:

  1. 被提交,味精勾自動添加的變化-ID線,它是正確的。

  2. 的空行也沒關係...這是自動添加到從更改-ID

  3. 註釋行是一個Git事情分開你的消息......只是要注意:「開始的行'#'將被忽略「。只要忽略它們。

您保存在您的提交執行:

git log 

要驗證你的提交。

那麼,這是什麼問題?爲什麼Gerrit報告「缺少Change-Id」?

因爲可能問題不在上次提交!可能這個問題(缺少Change-Id)是在父提交上。執行「git log」命令並​​檢查您的提交歷史記錄,查找沒有更改ID的任何新提交。

+0

我確實認爲鉤子被執行是因爲如果我回去並輸入git commit --amend然後我確實看到Change-Id: –

+0

是的。如果您沒有手動添加Change-Id,那麼您的存儲庫中安裝了.git/hooks/commit-msg掛鉤(可以選中此項),該掛鉤會自動添加Change-Id。當我說「你需要了解Change-Id之後爲什麼會有一些行」我的意思是:爲什麼有時候Change-Id會正確生成,有時候會在最後添加一些「奇怪」的行?請在Change-Id之後添加一個提交消息示例,其中包含額外的行。 –

+0

已被添加到原始問題。我甚至試圖在Change-Id之後刪除所有內容,但這並沒有奏效。我遵循的步驟:1:git add 2:git commit 3:git push origin master:refs/for/master 然後我得到消息....我做了git commit --amend並刪除所有行後沒有運氣的Change-Id。即使當我刪除change-Id時,它也無濟於事,但會創建一個新的Change-Id。 –