zoukankan      html  css  js  c++  java
  • git使用

    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

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

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

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

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

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

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

  • 相关阅读:
    ES 内存深度解析
    Spring Cache介绍和使用
    mysql 索引及索引创建原则
    mysql中四种存储引擎的区别和选择
    Java中数组、List、Set互相转换
    COGS 1151 活动安排
    洛谷P1650赛马与codevs 2181 田忌赛马
    5月3日济南清北学堂随堂测试题目
    codevs 1206 保留两位小数
    codevs 1203 判断浮点数是否相等
  • 原文地址:https://www.cnblogs.com/gelon/p/12750843.html
Copyright © 2011-2022 走看看