无法拉取,git无法解析引用源
从中央服务器拉入我的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 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文件。也许你可以考虑把布瑞恩的问题标记为正确答案,因为它有更多的选票。现在这就是我正在寻找的答案。感谢很多人花时间解释这个问题背后的原因