Tom*_* N. 11 git git-pull atlassian-sourcetree
一个同事和我一直在同一个分支上工作一个星期,不断推/拉变化,突然今天,我点击'拉'看看是否有任何变化我需要拉,我得到一个错误.
顺便提一下,这是源码.错误是这样的:
git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin
error: cannot lock ref 'refs/remotes/origin/angular_removal': unable to resolve reference 'refs/remotes/origin/angular_removal': reference broken
From https://bitbucket.org/colossus
! [new branch] angular_removal -> origin/angular_removal (unable to update local ref)
Run Code Online (Sandbox Code Playgroud)
我在sourcetree,它有一个内置的终端,但我似乎无法在这里找到解决方案.
Dud*_*dar 20
错误文本对我来说略有不同,如:
unable to update local ref it is [hash_code_1] but expected [hash_code_2].
所以这个命令
rm -rf .git/refs/remotes/origin/angular_removal帮助我只做一次抓取.然后该消息将再次返回.
在这种情况下,实际上有助于永久解决问题的是:
Raj*_*gan 16
已接受的解决方案仅提供有关OP如何解决问题的详细信息,并且它不是明确的答案.
为了像我这样最终来自谷歌的人,以下是真正有效的解决方案.
可以说,如果错误说,
error: cannot lock ref 'refs/remotes/origin/angular_removal': unable to resolve reference 'refs/remotes/origin/angular_removal': reference broken
Run Code Online (Sandbox Code Playgroud)
这里,违规元素是一个名为corded的文件refs/remotes/origin/angular_removal,它位于.git隐藏文件夹中.
要解决此问题,请在存储库根目录下运行以下命令.
rm .git/refs/remotes/origin/angular_removal
git fsck
Run Code Online (Sandbox Code Playgroud)
单独的第一个命令应该解决问题,git尝试重新初始化缺少的引用.
该命令git fsck只是为了检查存储库是否健康状况良好.
注意:该
ref文件对其他人来说会有所不同.因此,请确保使用ref您收到的错误消息中的文件名.**
Luc*_*tro 12
注意:这是似乎对某些人有效的唯一解决方案,但也是一个危险的操作,它破坏了某些人的本地存储库。请谨慎使用,并自行决定。
以下是为我修复它的步骤:
.git/packed_refsgit pack-refs以重新创建packed_refs 文件。参考:https : //git-scm.com/docs/git-pack-refs