阅读 360

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 复制代码

image.png

但我们改成使用 git pull origin develop 时,成功了 image.png

我们再次使用 git pull时,却又出现如下错误 image.png

原因分析

项目中 .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 试试 image.png image.png image.png

这回直接 git pull 也成功了,这个 prune 究竟是何方圣神呢?

方法二:删除有问题的 refs

  • 根据错误提示找到 .git 文件夹下 refs 目录中对应的错误 refs 文件并删除

  • 使用 $ git update-ref -d refs/remotes/origin/refs文件


作者:Jesse90s
链接:https://juejin.cn/post/7032580756463419406


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐