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

  • 相关阅读:
    JQuery
    a:hover伪类在ios移动端浏览器内无效的解决方法
    git rebase 过程中遇到冲突该怎么解决?
    git
    vue单文件中scoped样式如何穿透?
    微信小程序-怎么获取当前页面的url
    es6 class 中 constructor 方法 和 super
    如何将svg图标快速转换成字体图标?
    JavaWeb三大组件之一Filter知识总结
    Session的引入以及Cookie的不足
  • 原文地址:https://www.cnblogs.com/gelon/p/12750843.html
Copyright © 2011-2022 走看看