error: cannot lock ref ‘refs/remotes/origin/[branch]’

error: cannot lock ref ‘refs/remotes/origin/[branch]’  is *** but   expect **** 

# 先更新一下reference

git update-ref -d refs/remotes/origin/[locked branch name]

# 随后同步代码 git pull

#git-update-ref  - 安全地更新存储在ref中的对象名称

给定两个参数,将<newvalue>存储在<ref>中,可能会取消引用符号引用。例如,git update-ref HEAD <newvalue>将当前分支头更新为新对象。

给定三个参数,在验证<ref>的当前值匹配<oldvalue>之后,将<newvalue>存储在<ref>中,可能会解引用符号引用。例如git update-ref refs/heads/master <newvalue> <oldvalue>,只有当它的当前值是<oldvalue>时,才将主分支头更新为<newvalue>。您可以指定40“0”或空字符串作为<oldvalue>以确保您创建的引用不存在。

它还允许“ref”文件通过从“ref:”的四字节标题序列开始,成为另一个ref文件的符号指针。

更重要的是,它允许ref文件的更新遵循这些符号指针,无论它们是符号链接还是这些“常规文件符号引用”。它仅在以“refs /”开头时遵循真正的符号链接:否则它只会尝试读取它们并将它们更新为常规文件(即,它将允许文件系统跟随它们,但会覆盖此类符号链接到其他位置一个普通的文件名)。

如果给出--no-deref,则<ref>本身被覆盖,而不是遵循符号指针的结果。

git使用文档:

https://www.php.cn/manual/view/35110.html

原文地址:https://www.cnblogs.com/lyqf/p/15592170.html