error: remote unpack failed: error Missing tree

一、报错原因

对于该报错,官方的解释为可能为仓库损坏或网络问题等原因,但在我们实际开发过程中,绝大多数情况是因为,远程仓库有其他人提交的修改,本地尚未拉取最新代码。

二、解决方案

1、撤回提交

如前面所说,远程仓库有其他人提交的修改,如果不嫌撤回本地commit的话,我们是无法pull代码的。
所以在pull之前,我们需先试用如下代码,撤回本地的上一次commit

git reset --soft HEAD^
2、暂存代码

将本地修改代码先提交到暂存区,防止拉代码时,远程仓库代码和本地修改代码冲突

git stash
3、重新拉取

撤回提交后,即可重新拉取远程仓库代码,命令如下

git pull origin QL_DEV

QL_DEV为我的分支名,根据自己实际情况做出修改。

4、暂存区代码应用

在拉取完代码后,可重新将本地修改代码重新取出

git stash apply

注:此步骤可能出现代码冲突,需手动解决

5、重新提交代码

解决完可能出现的冲突后,即可重新走提交代码步骤

-- 从暂存区取出的代码,需要重新add,并非多余步骤
git add .

git commit -m 'comment'

git push origin QL_DEV
6、问题解决

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weilaaer/article/details/140826006