git pull时遇到error: cannot lock ref 'xxx': ref xxx is at (一个commitID) but expected的解决办法

在执行git pull时遇到如下错误:

error: cannot lock ref 'xxx': ref xxx is at (一个commitID) but expected

问题原因

在git pull的时候,本地的分支与远端对应分支的refs对比发现不同,然后导致报错:
可能是有人在操作某个分支的时候,git push失败,用了git push –force,导致远端分支被覆盖,使你本地的refs与远端无法保持一致
也可能是有人删除掉这个远端分支又重新新建了一个这个分支

解决办法

使用git命令删除相应refs文件(推荐)

git update-ref -d refs/
将报错信息中的refs分支替换‘refs/’,执行即可

强行git pull

git pull -p

删除有问题的refs

可以直接在.git/refs下面根据错误提示删除对应的refs文件,嫌麻烦直接删除整个refs目录也行(没有尝试过)

原文地址:https://blog.csdn.net/qq_15437667/article/details/52479792

posted @ 2021-06-21 16:38  晓天的BigWorld  阅读(832)  评论(0编辑  收藏  举报