git push 報(bào)錯:missing Change-Id in commit message footer
2018-09-07 12:15 加個小雞腿 閱讀(76658) 評論(0) 收藏 舉報(bào)
使用gerrit后,提交代碼會出現(xiàn)如下截圖問題:

臨時解決:
step1:把上面紅色的那條gitidir復(fù)制下來執(zhí)行下:

step2:執(zhí)行下面的命令會添加change_id
git commit --amend
step3:然后推送代碼到服務(wù)器上
git push origin HEAD:refs/for/$branch_name
上面這個情況主要針對本地剛下載的倉庫,第一次提交會出現(xiàn)這個情況,只需要執(zhí)行一次,以后再該倉庫提交就不用執(zhí)行了,說白了就是這個commit-msg是局部的,只對當(dāng)前倉庫生效。
還有另外一種情況,也是大家遇到比較多的,就是執(zhí)行了上面的命令,再push時還是一樣的錯,這個時候,你就要檢查下是否其他提交沒有change_id,因?yàn)間errit要求每個提交都要有change_id。
舉例:
執(zhí)行g(shù)it log 看到類似如下現(xiàn)象:

從上而下,我們用commitid1,commitid2,commitid3表示截圖中的三個提交,很明顯,第二個提交commitid2沒有change_id,這個時候我們可以git reset --soft commitid3來軟回退到異常節(jié)點(diǎn)的前一個正常的節(jié)點(diǎn),這個操作相當(dāng)于撤銷了最后的git commit -s的操作,add過的代碼還在索引庫(可以去了解下git reset --soft),具體操作如下:
(1) git reset --soft commitid3
(2) git status 可以看到綠色的已經(jīng)add過的文件(即commitid1和commitid2的改動)
(3) git commit -s #添加評論,保存退出后會生成change_id
(4) git log 可以看到已經(jīng)有了change_id
(5) git push origin HEAD:refs/for/工作分支
參考:
https://blog.csdn.net/u012843873/article/details/82424514
該博客中還介紹了第三種方式使用交互式 rebase 找回任意提交位置的 Change-Id ,git rebase -i commitid3,然后參考如下:

其中還介紹了change-ID相關(guān)信息,鉤子之類的,詳細(xì)內(nèi)容見參考鏈接。
浙公網(wǎng)安備 33010602011771號