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

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


当前回答

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

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

sudo chown用户名-R .git

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

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

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

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

其他回答

对我有用的是:

git config --global fetch.prune true

现在它继续运行自动修剪。

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

我发现同样的错误消息试图从一个比特币回购到我的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拉原点主控再拉一次没有出错

直接的答案

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

按步骤执行上述命令

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