git pull报错集锦
1. error: some local refs could not be updated
报错显示
当我们使用 git pull
时,出现如下错误
error: cannot lock ref 'refs/remotes/origin/某分支': 'refs/remotes/origin/某分支' exists; cannot create 'refs/remotes/origin/某分支' error: some local refs could not be updated 复制代码
但我们改成使用 git pull origin develop
时,成功了
我们再次使用 git pull
时,却又出现如下错误
原因分析
项目中 .git 文件夹下 refs 目录中追踪的其它同事分支,在使用 git pull
时发现与远程仓库中对应的分支refs不同,导致拉取失败,为什么不一样了?
有同事强推了这个分支,导致远程仓库中该分支被覆盖,而我们本地仓库 refs 则会与远程仓库的分支不一致,导致失败
git 分支不区分大小写,有同事删除了远程仓库中自己的分支,又重新创建了一个同名的分支,也会导致拉取失败
解决办法
方法一:其实上面 git pull
报错时已经提示了解决办法
error: some local refs could not be updated; try running 'git remote prune origin' to remove any old, conflicting branches 复制代码
于是,我们执行 git remote prune origin
试试
这回直接 git pull
也成功了,这个 prune 究竟是何方圣神呢?
方法二:删除有问题的 refs
根据错误提示找到 .git 文件夹下 refs 目录中对应的错误 refs 文件并删除
使用
$ git update-ref -d refs/remotes/origin/refs文件
作者:Jesse90s
链接:https://juejin.cn/post/7032580756463419406