likes
comments
collection
share

git pull报错集锦

作者站长头像
站长
· 阅读数 7

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报错集锦

但我们改成使用 git pull origin develop 时,成功了 git pull报错集锦

我们再次使用 git pull时,却又出现如下错误 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报错集锦 git pull报错集锦 git pull报错集锦

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

方法二:删除有问题的 refs

  • 根据错误提示找到 .git 文件夹下 refs 目录中对应的错误 refs 文件并删除
  • 使用 $ git update-ref -d refs/remotes/origin/refs文件
转载自:https://juejin.cn/post/7032580756463419406
评论
请登录