我只有分支主和我得到这个错误,每次我尝试“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'.

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


当前回答

我在我的debian服务器上也有同样的问题,因为磁盘已满。由于设备上没有剩余空间,无法创建临时文件。在清理了一些文件后,一切正常。

其他回答

我是PC用户-重启。

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

一个命令解决方案[Linux/bash用户]

通过更改文件的所有权来更改权限。

sudo chown用户名-R .git

(将“username”替换为您的用户名)

如果文件的所有者是sudo,则使用sudo。

删除文件也可以解决这个问题。

Sudo rm .git/logs/refs/remotes/origin/master

这种情况发生在我使用不区分大小写的文件系统的OSX上。不知何故,另一个开发人员推出了一个名称相同但情况不同的分支:My-Branch vs My-Branch。

我已经检出了My-Branch,并在我做拉取时得到了“无法更新本地ref”的错误,这可能是因为文件系统认为My-Branch == My-Branch。

由于我们使用Github,我可以通过通过Github的GUI删除一个分支来解决这个问题。

以admin cd打开Git Bash文件夹, Git添加。 Git commit -m "your message" Git推 他现在要么使用内置凭证,要么要求用户名/pw, 如果内置凭据或用户名/pw不起作用,创建一个PAT并关闭要求凭据的窗口,将弹出一个要求PAT的屏幕

我有同样的错误,我从Eclipse中更新,我得到了许多错误。 所以我尝试从DOS命令窗口更新,并得到了同样的问题。

然后我尝试了解决方案“git gc -prune=now” 这给出了文件被锁定在refs目录中的消息。

Eclipse一定锁定了“refs”目录中的某些内容。 我找到的解决方案是关闭Eclipse。 然后我用“git PULL”命令从DOS更新了存储库,一切都运行正常。