更新代码到最新,然后从其它分支cherry-pick几个commit,然后push到服务器出现了错误:
$ git push origin HEAD:refs/for/xxx
Enumerating objects: 3366, done.
Counting objects: 100% (3364/3364), done.
Delta compression using up to 14 threads
Compressing objects: 100% (1291/1291), done.
Writing objects: 100% (2941/2941), 3.00 MiB | 12.02 MiB/s, done.
Total 2941 (delta 1988), reused 2295 (delta 1555)
remote: Resolving deltas: 100% (1988/1988)
remote: Counting objects: 386506, done
fatal: Unpack error, check server log
error: remote unpack failed: error Missing tree 6eb239345994dc0c9ff05679e7412981d7e92564
To ssh://git.xiaomi.com:29418/miwifi/router/openwrt
! [remote rejected] HEAD -> refs/for/xxx (n/a (unpacker error))
error: failed to push some refs to 'ssh://xxx@git.xxx.com:29418/xxx'
google到stackoverflow有人遇到同样的问题,第一个解决方法是加上--no-thin
git push --no-thin
记得之前,这样确实可以解决问题。
第二回答者,指出是服务器有了更新。于是尝试拉取服务器的更新,并rebase,push成功。
$ git fetch origin xxx
$ git rebase
$ git push origin HEAD:refs/for/