git push 報錯:missing Change-Id in commit message footer(轉載)

轉載自:https://www.cnblogs.com/zndxall/p/9603834.html

git push 報錯:missing Change-Id in commit message footer

使用gerrit後,提交代碼會出現如下截圖問題:
在這裏插入圖片描述

臨時解決:

step1:把上面紅色的那條gitidir複製下來執行下:
在這裏插入圖片描述

step2:執行下面的命令會添加change_id

git commit --amend

step3:然後推送代碼到服務器上

git push origin HEAD:refs/for/$branch_name

上面這個情況主要針對本地剛下載的倉庫,第一次提交會出現這個情況,只需要執行一次,以後再該倉庫提交就不用執行了,說白了就是這個commit-msg是局部的,只對當前倉庫生效。

還有另外一種情況,也是大家遇到比較多的,就是執行了上面的命令,再push時還是一樣的錯,這個時候,你就要檢查下是否其他提交沒有change_id,因爲gerrit要求每個提交都要有change_id。

舉例:

執行git log 看到類似如下現象:

在這裏插入圖片描述

從上而下,我們用commitid1,commitid2,commitid3表示截圖中的三個提交,很明顯,第二個提交commitid2沒有change_id,這個時候我們可以git reset --soft commitid3來軟回退到異常節點的前一個正常的節點,這個操作相當於撤銷了最後的git commit -s的操作,add過的代碼還在索引庫(可以去了解下git reset --soft),具體操作如下:

(1) git reset --soft commitid3

(2) git status 可以看到綠色的已經add過的文件(即commitid1和commitid2的改動)

(3) git commit -s #添加評論,保存退出後會生成change_id

(4) git log 可以看到已經有了change_id

(5) git push origin HEAD:refs/for/工作分支

我的具體操作如下,供參考:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章