我只有分支主和我得到这个错误,每次我尝试“git拉”:

error: Couldn't set refs/remotes/origin/master
From /var/lib/git/xxx/project
 ! a0f80ea..49177a3  master     -> origin/master  (unable to update local ref)

当我执行“git pull origin master”时,我得到:

error: Couldn't set ORIG_HEAD
fatal: Cannot update the ref 'ORIG_HEAD'.

我一直在寻找,却找不到原因


当前回答

确保执行git拉取的用户与创建存储库的用户相同。文件权限不正确。

其他回答

我发现同样的错误消息试图从一个比特币回购到我的lokal拷贝。也只有一个Branche Master, git pull origin Master命令会导致这个错误消息

From https://bitbucket.org/xxx
 * branch            master     -> FETCH_HEAD
error: Couldn't set ORIG_HEAD
fatal: Cannot update the ref 'ORIG_HEAD'.

解决方案如下

Git reflog找到最后一次提交的编号 Git重置——hard < number >重置到最后一次提交 Git拉原点主控再拉一次没有出错

我是PC用户-重启。

说实话,这对我很管用。我解决了两个奇怪的git问题,我认为这是腐败的方式。

再次克隆存储库,并将.git文件夹复制到破碎的项目中。

直接的答案

git remote prune origin
rm .git/refs/remotes/origin/master
git fetch
git pull origin master

按步骤执行上述命令

我和我的团队遇到了这个错误,无法更新本地ref,当在SourceTree中进行拉取时。

2020年更新:根据下面@Edward Yang的回答,@bryan对这个答案的评论,以及这个问题/答案,你可能需要同时运行git gc -prune=now和git remote prune origin。只运行前者对我来说一直有效,但基于ppl的回复,我认为两者都是必要的,以解决错误的不同原因。

我们使用:

git gc --prune=now

这将删除任何可以修复问题的重复引用对象。

这里有一些链接,你可以了解更多关于git引用和修剪的信息:

本周的小费

git-prune文档

吉特引用