git pull时遇到error: cannot lock ref 'xxx': ref xxx is at (一个commitID) but expected的解决办法

2023-05-16

git pull时遇到error: cannot lock ref ‘xxx’: ref xxx is at (一个commitID) but expected的解决办法

在执行git pull时遇到如下错误:

error: cannot lock ref 'xxx': ref xxx is at (一个commitID) but expected

遇到这个错误会导致git pull失败。

问题原因

原因是你这个git工程的.git/refs目录下跟踪的某些git分支,在git pull的时候,与远端的对应分支的refs对比发现不同,所以导致git pull报错。

通常产生这个问题的原因是(以分支git/yousa/feature_01为例):

  1. 有人操作git/yousa/feature_01这个分支,在git push的时候使用了git push –force,(当然这个人的git push是push不上去),导致远端分支被覆盖,你本地的refs与远端无法一致,导致问题
  2. git分支是不区分大小写的,如果有人删除掉这个远端分支又重新新建了一个这个分支也会出现同样的问题。

解决办法

根据前面的原因有一些操作方法,基本思路就是要么,强行git pull;要么则是删除掉有问题的refs,再进行git pull(个人还是推荐第二种)(以分支git/yousa/feature_01为例)

  1. 删除有问题的refs,可以直接在.git/refs下面根据错误提示删除对应的refs文件,比如这个就是需要删除refs/remotes/origin/git/yousa/feature_01文件(嫌麻烦直接删除整个refs目录也行)
  2. 使用git命令删除相应refs文件,git update-ref -d refs/remotes/origin/git/yousa/feature_01
  3. 简单粗暴强行git pull,执行git pull -p

另一种思路

error: cannot lock ref 'xxx': ref xxx is at (一个commitID

直观得看错误信息,git本次操作是获取锁失败,git的锁是使用一个共享的文件锁,故删除对应的index.lock文件也可以解决该问题。(直接释放锁)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git pull时遇到error: cannot lock ref 'xxx': ref xxx is at (一个commitID) but expected的解决办法 的相关文章

  • 是否可以在 gitk 中配置 diff ?

    当单击 gitk 中的文件时 它将与该文件的先前版本进行比较 看起来这些文件是与 git diff 进行比较的 并且可以配置很少的参数 基本上是每个差异周围要查看的行数 上下文行 是否可以以某种方式进一步配置 gitk 的 diff 我希望
  • 推送时出现 git 错误 来自服务器的空回复

    我一直在尝试对现有存储库进行新的更改 但是 我不断收到以下错误 MacBook Pro spa git push origin master XX 的用户名 致命密码 无法访问 https github com XXXX https git
  • 使用 libgit2sharp 从分支中提取最新版本

    我在 C 解决方案中使用 libgit2sharp 切换到分支并提取最新更改 这是我正在使用的代码 public void FetchAll using var repo new Repository LocalGitPath foreac
  • 如何合并两个 Git 存储库?

    考虑以下场景 我在自己的 Git 存储库中开发了一个小型实验项目 A 它现在已经成熟了 我希望 A 成为更大的项目 B 的一部分 该项目有自己的大存储库 我现在想将 A 添加为 B 的子目录 如何将 A 合并到 B 中而不丢失任何一方的历史
  • 解决合并冲突后 Git rebase 陷入困境

    我正在运行一个遇到冲突的变基 git rebase master First rewinding head to replay your work on top of it Applying Better SelectMotifsView
  • Git 推送失败(Github/RStudio)

    我过去曾在这台机器上成功使用过 Git 但突然间我无法再将我的提交推送到 Github 存储库 我对 Git 工具链所做的最后一次更改是除了 Windows 客户端的 Github 之外还安装了 Git 1 8 5 2 除非我已经启动了 G
  • 如何修复 git 存储库中的“错误日期”问题?

    我最近尝试将存储库导入 GitHub 来自 Bitbucket 但导入失败 GitHub 技术支持通知我 他们在存储库中看到 错误日期 问题 我应该运行git fsck在存储库上 所以我从 BitBucket 克隆它并运行git fsck这
  • git clone 永远挂在 github 上

    当我按照 github 中的第 5 点 测试所有内容 时guide http help github com linux set up git ssh 命令也永远挂起 根据该指南 我应该看到一条消息 Github 不提供 shell 访问
  • eGit/ZendStudio 9 生成的 Refspec HEAD:refs/for/refs/heads/master 是什么意思?

    在 ZendStudio 9 中从 Git 设置一个项目 基于 eclipse 和 eGit 它生成一个安静的正常获取引用规范 Remote Fetch Specification refs heads refs remotes origi
  • 基于github仓库的本地仓库创建本地git仓库并保持更新

    我有一些基本的 git 知识 但我不知道如何实现这一点 我正在尝试克隆 github WordPress 入门主题下划线 https github com automattic s 这个想法是创建一个基本框架based 经过一些修改 在该存
  • Git http - 安全地记住凭据

    通过 HTTP S 连接到远程存储库时 有没有办法安全地让 git 记住我的凭据 我已经尝试过core askpass方法详述于git config http git scm com docs git config让外部脚本提供我的凭据 尽
  • 递归相对于 git rm -r [文件名] 意味着什么

    我正在学习一些 git 教程 但不明白运行之间的区别 git rm path to file and git rm r path to file 递归到底是什么意思 提前致谢 从 git rm 手册页 主目录名称 例如dir去除dir fi
  • 明确的追溯 .gitignore (如何让 Git 完全/追溯地*忘记*现在在 .gitignore 中的文件)

    Preface This question attempts to clear the confusion regarding applying gitignore retroactively not just to the present
  • 对于单个开发人员来说,是否值得从 SVN 转向 Git?

    自 2013 年起 此线程很可能已过时 当存储库主要由单个开发人员访问时 是否值得从 SVN 转到 GIT 我有几台用于开发的机器 主要不是用 C 开发 但我的存储库中混合了 VB VB Net PHP C C HTML Batch BAS
  • 列出 git 标签名称、日期和消息

    如何列出所有标签的标签名称 标签日期和标签消息 看来 git 通过以下方式分离了提交的显示逻辑git log并通过标签git tag使得列出标签名称 标签日期和标签消息变得困难 我可以显示标签日期 姓名和提交消息 using git log
  • 如何提供准备好的 git 提交消息?

    按照惯例 我在 git 中创建故事分支 以在其中包含 Jira 问题 ID 例如FOO 1001 我有一个脚本可以帮我做到这一点 现在 我准备了另一个脚本 用于从 Jira API 获取 FOO 1001 的标题 我想在输入时实现这一目标
  • `checkout` = `reset` + `symbolic ref`?

    Suppose a branch是一个现有分支 指向与之前不同的提交HEAD指着 HEAD可能直接或通过某些方式指向提交branch 以下命令等效吗 git checkout a branch and git symbolic ref HE
  • 如何在 github 提交中设置用户名别名?

    我刚刚在大学读完一个学期 决定将我的所有项目从 bitbucket 我的课程所需 导入到 github 我所有其他项目都在其中 我成功导入了它们 不幸的是 当我从事这些项目时 我在三台不同的计算机之间切换 因此 提交历史记录中有许多我自己所
  • 如何管理提交者的层次结构(如 Linux 内核开发)

    我是一个拥有 GitHub 存储库的项目的提交者 我有一个开发人员小组 他们无法读取或提交该存储库 我想设置一个他们可以提交的 git 服务器 它是 GitHub 存储库的克隆 当他们提交时 我会对其进行审查 有时进行编辑 然后推送到 Gi
  • 是否存在用于编辑 doxygen 评论的“wiki”? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个相当大的开源 RTS 游戏引擎 Spring http springrts com 我最近

随机推荐

  • C#,生成字符串整数校验码(Checksum)的谷歌(Google)算法与源代码

    如题 校验码系统是产生校验码并校验包括校验码在内的字符串的一套规则 它可以防止在抄录和键入字符串时产生的错误 一般生成 MD5 校验 xff0c 也可以生成 进行简单 快速的 整数 校验 谷歌开源 xff0c 很实用的整数校验码生成代码 u
  • AD常用快捷键(自用)

    走线角度切换 xff1a shift 43 空格 走线线宽切换 xff1a shift 43 W 快速查找元件 xff1a J 43 C 快速对齐 xff1a a 查看相同网络连接 xff1a Alt 43 单击网络 切换单层显示和多层显示
  • stm32软件仿真调试

    下面是一个单片机STM32RCT6的PA8 xff0c PA9 xff0c PA10引脚输出PWM波形的仿真步骤 xff0c 此外还展示了软件运行过程 xff0c 如何查看全局变量的实时数据 每一步我都做了截图 xff0c 大家照着一步步来
  • 电容种类特性

  • STM32F103 PB3,PB4,PA15,IO不可控问题

    STM32默认启动时PB4 PB3 PA15三个引脚不是普通IO xff0c 而是JTAG的复用功能 xff0c 分别为JNTRST JTDI JTDO 由上可以知要使PB3可以用 须关闭JTAG DP SW DP 可以不管 添加以下配置即
  • STM32CubeMX | STM32使用HAL库串口收发

    一 串口实现printf 1 hal配置 2 重定向代码 span class token comment USER CODE BEGIN Includes span span class token macro property span
  • 继电器开关阿里云IOT上云设置操作

    阿里云IOT继电器开关产品 阿里云IOT设备接入的入口有两个 一是物联网平台 xff0c 二是生活物联网平台 飞燕平台 xff09 飞燕平台主要是为生成APP用 xff0c 它创建的产品也会出现在物联网平台下 物联网平台下创建更方便配置相对
  • STM32定时器使用计算

    STM32F103ZE有8个定时器 xff0c 其中2个高级定时器 TIM1 TIM8 xff08 带死区控制 xff09 xff0c 4个通用定时器 xff08 TIM2 TIM3 TIM4 TIM5 xff09 xff0c 2个基本定时
  • lwip select函数分析和优化

    我的设备有两个网卡 xff0c 我需要开两路socket xff0c 一路UDP xff0c 一路TCP xff0c lwip的版本是1 4 1的 xff0c 实际运行发现 xff0c UDP 运行一段时间以后挂了 xff0c 通信挂了 x
  • curl并发 c++

    QQ技术交流群 xff1a 386476712
  • ROS组网

    参考ROS实战之ROS组网的搭建 ROS ROS命令 xff08 三 xff09 ROS 信息命令 其实整个过程比想象中简单的多 首先保证所有运行 ROS 的机器 xff08 no matter it is a raspberry or a
  • Ubuntu16.04下完美切换Python版本

    转载自http blog csdn net u013894834 article details 75305752 Ubuntu16 04下完美切换Python版本 xff08 亲测 xff09 对于ubuntu 16 04 xff0c 由
  • ArduPilot-sitl中的一些操作记录

    ArduPilot 这么优秀的代码 提供了一套很方便的SITL仿真开发模式 在git clone代码的时候 已经将相关的东西下载下来了 问题是如何进行使用 首先要安装mavproxy 这个软件 pymavlink mavlink封装的pyt
  • 烧写自定义ArduPilot到自定义的开发板

    写在前面的话 xff1a 本篇章内容参看 怒飞垂云 的资料 将APM固件移植到自制硬件 实际操作过程中 xff0c 需要如下几个步骤 xff1a 先在ardupilot中的 waf distclean 完成清理 xff0c 主要删除了bui
  • 跨域资源共享CORS的那些事(二)

    跨域资源共享CORS的那些事 xff08 二 xff09 最近在为高性能开源API网关apisix写跨域插件 xff0c 发现该功能对协议要求要比较熟悉 xff0c 借此机会重新复习下跨域协议 xff0c 以及简要写下跨域功能的设计 文章目
  • 宅家学习,如何进行Kubernetes Ingress控制器的技术选型?

    导语 xff1a 在Kubernetes的实践 部署中 xff0c 为了解决 Pod 迁移 Node Pod 端口 域名动态分配等问题 xff0c 需要开发人员选择合适的 Ingress 解决方案 面对市场上众多Ingress产品 xff0
  • Linux下connect()函数的错误代码对应含义

    Linux下connect 函数的错误代码对应含义 windows和linux下的connect系统接口有自己的一套返回码以及返回含义 Linux EBADF xff1a 参数socket未指定一个合法的描述符ENOTSOCK 参数sock
  • git设置用户名密码

    git设置用户名密码 设置git用户名 xff0f 邮箱 span class hljs comment git span span class hljs comment config span span class hljs litera
  • 'python' 不是内部或外部命令,也不是可运行的程序或批处理文件。

    python 不是内部或外部命令 xff0c 也不是可运行的程序或批处理文件 我将python安装在D盘之后 xff0c 输入python xff0c 显示如下问题 span class hljs keyword D span gt pyt
  • git pull时遇到error: cannot lock ref 'xxx': ref xxx is at (一个commitID) but expected的解决办法

    git pull时遇到error cannot lock ref xxx ref xxx is at xff08 一个commitID xff09 but expected的解决办法 在执行git pull时遇到如下错误 xff1a spa