##現(xiàn)象
使用gerrit做代碼管理啤月,如果是本地第一次提交代碼到git倉庫恩沽,會報以下錯誤。
Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 517 bytes | 517.00 KiB/s, done.
Total 6 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5)
remote: Processing changes: refs: 1, done
remote: ERROR: [03d6876] 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 huanglin@192.168.0.221:hooks/commit-msg ${gitdir}/hooks/
remote: And then amend the commit:
remote:? git commit --amend
remote:
To ssh://192.168.0.221:29418/**Project
! [remote rejected] HEAD -> refs/for/master ([03d6876] missing Change-Id in commit message footer)
error: failed to push some refs to 'ssh://huanglin@192.168.0.221:29418/**Project'
上面的錯誤就是說,我們提交的commit-msg里面缺少了Change-Id。
##解決辦法
在windows和Linux系統(tǒng)環(huán)境下逞频,解決辦法有點(diǎn)不一樣纯衍。
####Linux系統(tǒng)解決辦法
直接按照報錯提示,按下面步驟操作:
cd到項(xiàng)目的根目錄
將報錯提示中的這段命令復(fù)制到終端苗胀,按enter鍵襟诸,執(zhí)行命令
gitdir=$(git rev-parse --git-dir); scp -p -P 29418 huanglin@192.168.0.221:hooks/commit-msg ${gitdir}/hooks/
執(zhí)行命令git commit --amend
保存退出。
####windows平臺解決辦法
在windows平臺下面基协,如果執(zhí)行g(shù)itdir那一段命令歌亲,會提示說gitdir不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件澜驮。這個時候陷揪,就只能用下面這個萬能大招了。
cd到項(xiàng)目的根目錄
執(zhí)行命令
curl -Lo .git/hooks/commit-msg http://server:port/tools/hooks/commit-msg
執(zhí)行命令git commit --amend
保存退出
注:server就是你的gerrit服務(wù)器的地址,port就是倉庫的端口號