不能拉,git无法解析引用ORIG_HEAD

vvo*_*dra 29 git

从我们的中央服务器进入我的git存储库时,出现此错误:

$ git pull origin master

From http://aaa/repo
 * branch            master     -> FETCH_HEAD
error: unable to resolve reference ORIG_HEAD: No such file or directory
fatal: Cannot lock the ref 'ORIG_HEAD'.
Run Code Online (Sandbox Code Playgroud)

我已经尝试了git gc(使用--prune = now)并寻找类似的错误,遗憾的是没有运气.

Bri*_*ton 90

我遇到了这个问题,我通过删除文件.git/ORIG_HEAD然后再次执行拉取来解决了这个问题..git/ORIG_HEAD文件是0字节而不是它应该包含的git引用,所以我就摆脱它了.

  • @SujishaOs 在您的存储库目录中,查找名为 .git 的隐藏文件夹。在其中,您将找到 ORIG_HEAD 文件。 (4认同)
  • IntelliJ IDEA 崩溃后我遇到了这个问题 (3认同)

Von*_*onC 9

检查git remote prune origin所提及的git gc --prune=now" git pull失败"中的无法解析引用""无法更新本地引用" ".

如果您有.git/rebase-merge,请考虑将其删除(如" git rebase和已删除的重新分支导致"交互式rebase已启动"错误消息 ")

还要检查的内容.git/HEAD,在这个问题上.

如果这是某种类型的repo损坏(请参阅" Git corrupt master branch "),请先尝试再次克隆您的repo,然后在该repo之上重新应用您当前的修改(git format-patch如果需要)


Ari*_*bib 8

这个答案并没有解决OP的问题,但解决了类似的问题.

我有一个类似的问题(我得到了error: cannot lock ref ... is at ... but expected ...),但这是因为回购中有两个分支具有相同的名称,但具有不同的情况.也许这个答案可以帮助到达这里的人,我无法在其他地方找到答案.我删除了其中一个分支,然后从中删除了相应的引用:.git/ref/.../branch_name,然后git pull.这是因为我处理不区分大小写的文件系统,而两个分支被推送到区分大小写的文件系统上.

例如,两个分支是BRANCH1branch1,它们都是origin远程的.例如,首先删除其中一个分支BRANCH1.然后删除它的ref:

rm .git/refs/remotes/origin/BRANCH1
Run Code Online (Sandbox Code Playgroud)

然后git pull,它应该没问题.


Gal*_*cio 7

我必须删除.git/ORIG_HEAD.lock,而不是(只是).git/ORIG_HEAD