環境
git version 1.9.1
Gerrit Code Review (2.11.3)
1
2
現象
修改後調用 git review能夠提交到Gerrit上,而後只要一用 git commit --amend修改 Commit Message再提交,就會出現此錯誤;而若是不修改Commit Message,而只是修改增長文件,那麼能夠用 --amend提交再 git reviewgit
error: unpack failed: error Missing tree 8d89499daadf6417347218b630b5cae57e7fa27c
fatal: Unpack error, check server log
To ssh://user1@review.zjc.com:29418/test-project1.git
! [remote rejected] HEAD -> refs/publish/master (n/a (unpacker error))
error: failed to push some refs to 'ssh://user1@review.zjc.com:29418/test-project1.git'
1
2
3
4
5
解決方案
通過多方查資料,是提交時的 thin push 的問題,默認是開着的,要把它關掉數據庫
有人說ssh
在工程的 .gitreview 下的 Gerrit節點下增長 disablethinpush=true
在 /etc/git-review/git-review.conf 中添加 disablethinpush=true
用 git push --no-thin ...來解決,由於這是一個BUG
涉及到庫更改時候有未關閉的的patch,更新gerrit的數據庫
好吧,我認可在Git使用上我是菜鳥,我只是用 git review來提交而已。搗鼓了半天上面的N種列出來沒列出來的解決方案,都失敗命令行
好吧,說出來我碰巧獲得的一個這種方案server
執行命令git review --no-thin :失敗
無心間看到 git review -h 有個命令行參數 -n
執行命令git review -n :
Please use the following command to send your commits to review: rem
git push gerrit HEAD:refs/publish/master
執行 git push gerrit HEAD:refs/publish/master : 仍是那個錯誤it
執行 git push --no-thin gerrit HEAD:refs/publish/masterio
成功了!!!!ast
好吧,我笨 && 牛人的世界我不懂test
結論 加一個結論吧,囉嗦一大堆,其實就2句話是關鍵 執行 git review,若是出現錯誤就執行 git push --no-thin gerrit HEAD:refs/publish/master