无法拉取,git无法解析引用源

无法拉取,git无法解析引用源,git,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'. 我尝试过git gc(使用--

从中央服务器拉入我的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'.

我尝试过git gc(使用--prune=now)并寻找类似的错误,不幸的是没有运气。

除了在“”中提到的
git gc--prune=now
之外,还检查了
git remote prune origin

如果您有<代码> .git/ReBASE合并< /代码>,请考虑删除它(如在“”中)

同时检查
.git/HEAD
的内容,如中所示


如果这是某种回购协议损坏(请参见“”),请首先尝试再次克隆您的回购协议,并在该回购协议的基础上重新应用您当前的修改(如果需要)

我遇到了这个问题,我通过删除文件.git/ORIG_HEAD,然后再次执行拉操作来解决它。.git/ORIG_头文件是0字节,而不是它应该包含的git引用,所以我刚刚将其删除。

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

我有一个类似的问题(我得到了
错误:无法锁定ref…位于…但预期为…
),但这是因为回购协议中有两个分行名称相同,但大小写不同。也许这个答案可以帮助那些来到这里的人,我在其他地方找不到答案。 我删除了其中一个分支,然后从以下位置删除了相应的引用:
.git/ref/../branch\u name
,然后git被拉入。这是因为我在一个不区分大小写的文件系统上工作,而这两个分支是在一个区分大小写的文件系统上工作的

例如,这两个分支是
BRANCH1
BRANCH1
,它们都位于
origin
remote下。首先,删除其中一个分支,例如
BRANCH1
。然后删除其ref:

rm .git/refs/remotes/origin/BRANCH1

然后
git-pull
,应该没问题。

此文件是在存储库中
git-pull
时创建的,以便在同一存储库中
git-pull
不会同时出现多个文件,并且在过程完成时将其删除。如果进程死亡或变成僵尸,那么文件不会被删除,您必须手动检查git进程是否仍然存在。如果进程不存在,那么您必须删除文件并再次尝试
git-pull

我必须删除
.git/ORIG\u-HEAD.lock
,而不是(仅仅)
。git/ORIG\u-HEAD

我有Unix权限问题,我对两个不同的用户使用了相同的git-repo(一个是
root
,另一个是我的私人用户)

因此,我必须将
.git/ORIG_HEAD
上的文件所有权更改为我的个人用户,这就解决了问题

chown myuser:mygrp .git/ORIG_HEAD

谢谢,不幸的是,上面提到的修复都不起作用,所以我不得不重新克隆并应用补丁。知道是什么导致了这个问题吗?@Earth甜瓜,我不确定。可能是文件系统的问题。删除它也修复了IntelliJ IDEA之后我遇到的每次推/拉时令人讨厌的密码提示crashes@SujishaOs在存储库目录中,查找名为.git的隐藏文件夹。在这里面,你会找到OrgiHead文件。也许你可以考虑把布瑞恩的问题标记为正确答案,因为它有更多的选票。现在这就是我正在寻找的答案。感谢很多人花时间解释这个问题背后的原因