Git拉取失败:无法更新本地引用。

3
我完全搞糊涂了我的git仓库。我不能推送/拉取远程分支..它从git extensions中消失了... 我使用的是Git Extensions 2.33,msysgit Git-1.7.11-preview20120710.exe。
C:\Program Files (x86)\Git\bin\git.exe pull --progress "biometric" +refs/heads/try_merge:refs/remotes/biometric/try_merge
error: unable to resolve reference refs/remotes/biometric/try_merge: No such file or directory
From biometric.bmstu.ru:test
 ! [new branch]      try_merge  -> biometric/try_merge  (unable to update local ref)
Done


$git fsck output

error: bad ref for refs/remotes/biometric/try_merge

当我尝试将一些东西推送到远程时,git认为它是远程存储库的全新分支。我该如何恢复它?

抱歉,我的英语不太好。感谢任何帮助。


我通过手动编辑 refs/remotes/try_merge(它充满了空值)来修复了这个问题。我已经复制了最后合并提交的 sha1 值。 - Stanislav O Chernykh
2个回答

2

我曾经遇到过这个问题,通过在.git/refs/remotes/origin/中删除有问题的分支,然后再次执行git fetch来解决它。


问题已解决。参考文件包含无效字符。删除后错误消失。 - SandRock

0
你已经颠倒了匹配的 ref 语法。它应该是 `:`,但除此之外,看起来你只是试图拉取 `biometric/try_merge` 并将其强制合并到你本地的 `try_merge` 中。请尝试这个:
git checkout try_merge
git pull --force biometric try_merge

否则,如果您想保留匹配的引用语法,我认为这将起作用:
git pull biometric +try_merge:try_merge

如果这些仍然引发错误,请在评论中告诉我,但任何一个都应该可以工作。


实际上,我不会手动执行git命令。这个命令是由Git Extensions生成和执行的,正如我所说,我在远程分支上有一个错误的引用,我用正确的sha值进行了修复。但无论如何,还是谢谢你的帮助。 - Stanislav O Chernykh
啊,太棒了。很高兴你解决了它。一开始没有注意到 git 扩展的参考。 - Christopher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接