我只有分支主和我得到这个错误,每次我尝试“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 remote prune origin
rm .git/refs/remotes/origin/master
git fetch
git pull origin master

按步骤执行上述命令

其他回答

我通过删除锁定的分支文件来修复这个问题。它可能看起来很粗糙,我不知道为什么它能起作用,但它解决了我的问题(即你得到的相同错误)

删除: .git/refs/remotes/origin/[锁定的分支名称]

然后我就跑了

git fetch

git文件恢复了自己,完全修复了

这可能是一个非常小众的情况,但是:我在我的MacBook Pro上的Parallels VM中运行Windows,我的本地回购存储在虚拟机的磁盘上,与macOS共享。

如果我在Mac应用程序中打开了一个位于Windows VM上的repo文件,我有时会得到“无法更新本地ref”错误。当这种情况发生时,解决方案是关闭文件或退出Mac应用程序。

Git调用origin <branch_name_you_are_currently_at>将只调用该分支。 它可能会给您带来合并冲突,也可能不会。解决问题并承诺。 这对我很管用。

如果你最近更改了密码,并且有一些奇特的东西集成了你的Windows和Linux登录,也会发生这个错误(无法更新本地ref)。

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