Git pull 错误 "unable to update local ref"如何解决?

标签 git atlassian-sourcetree

<分区>

这是错误信息:

 error: cannot lock ref 'refs/remotes/origin/master': unable to resolve reference 'refs/remotes/origin/master': reference broken
    From https://bitbucket.org/abc/abc
     ! [new branch]        master     -> origin/master  (unable to update local ref)

当我尝试 pull 时,它显示“完成但有错误,见上文”,我忘记了我之前做了什么,所以在我执行 pull 请求后出现了这个错误。我该怎么办?

最佳答案

听起来您对 origin/master 分支的引用已损坏或损坏。

首先 - 复制一份您的本地存储库。

你可以做两件事(据我所知):

  1. 删除对 master 的引用,然后进行提取(以获取最新的): cd <path-to-your-repo> rm .git/refs/remotes/origin/master git fetch

  2. 尝试使用 git 维护功能:

    • git gc --prune=now
    • git remote prune origin (可能不需要这个删除陈旧的远程跟踪分支等)

注意:在执行此操作之前进行备份的一个原因是 git gc 修剪会永久删除一些无法访问的提交 - 理论上,如果您犯了错误,您可能需要这些提交。

关于Git pull 错误 "unable to update local ref"如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45957377/

相关文章:

git - "failed to open '/etc/gitconfig ' - permission denied"使用 GitKraken 克隆存储库时

Git流程问题, merge 掌握与开发

git - Jenkins - 所有分支机构一份工作还是每个分支机构一份工作?

java - Git:将文件自动 merge 为冲突文件

git - Sourcetree 和暂存更改的文件

git - Ubuntu 16.04 的 Source Tree 的替代品是什么?

git - 源代码树 - 如何还原推送的提交

git - 如何在 master 分支之上重新应用分支的所有提交,但将其保留在自己的分支中?

python - 在触发的 Lambda 函数中获取 Amazon Web Services Codecommit 存储库的名称

git - Jenkins 没有获取正确的 Gerrit 分支