git pull时遇到git pull error :error: remote ref is at but expected问题的解决办法

原创 2016年06月01日 20:24:13

今天在拉取项目新版本的代码时,遇到了一个问题,对项目最新的代码进行git pull,报错:

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

一开始我以为是分支出现了问题,索性就把该分支给删掉了,删掉之后重新由远程分支创建本地分支,一番操作之后发现根本没有用,还是会报这个错。一番搜索与操作之后,还是没能把这个问题解决,(其实在搜索到的某个stackoverflow页面中已经提到了这个问题,但是我没有看到)于是寻求组里高手的帮助。经过高手的一番指点,终于把这个问题给解决了。

原因

首先说一下,出现这个问题的原因:出现这个错误的原因,是因为在你的远程分支中,有名字相同的分支(这个相同是不区分大小写的),在我遇到的问题里,就是因为我们项目的远程分支里有两个分支除了首字母大小写不同之外,别的完全相同,所以才会出现这种错误。具体好像是要看你机器的平台,Windows与OSX这种大小写不敏感的系统平台就会出现这种情况。

解决方案

下面说一下解决的办法

  • 今天我采用的方法是直接在终端里输入:

    git update-ref -d (名字相同的分支名)

    然后再git pull,就一切顺利啦。

  • stackoverflow上还有人提供了另外一种解决方式:

    1. 首先将错误的远程分支删除
    2. 在终端运行
      git remote prune origin

    也会奏效,不过这样会影响到远程分支。上一种解决方法则不会影响到远程分支。

总结

为避免这种情况的出现,很重要的一点就是再给分支起名的时候一定要注意,,分支的名字应该有其特定的意义,而且注意不要与其他分支重名,不要只用字母的大小写来区分两个分支

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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时遇到如...

org.eclipse.jgit.errors.LockFailedException: Cannot lock D:\xxx\.git\index

用Eclipse+EGit项目开发,Commit 时提示:完整错误日志:eclipse.buildId=4.6.0.I20160606-1100 java.version=1.8.0_31 java....

GIT Error pulling: Your local changes to the following 解决GIT PULL冲突

作用: 解决GIT

Git常见错误与操作:error: src refspec master does not match any解决办法

Git常见错误与操作:error: src refspec master does not match any解决办法 一、 出现错误 error:src refspec master does n...

git - error: failed to push some refs to 'https://github.com/xuzhezhaozhao/Practice.git' 解决办法

在使用git的时候, 我用git commit --amend 命令修改了上一个提交的一些内容, 而上一个提交的内容已经被我用push推到远程服务器了, 现在我用git push -u origin ...

Git 删除远程分支报错 error: Could not remove config section 'remote.origin' 解决办法

这是我的Github新创建的一个Repository echo # springDemo >> README.md git init git add README.md git commit -m ...

MyEclipse 打开Struts配置文件时出错的终级解决办法------Error opening the editor.------at org.eclipse.ui.internal.WorkbenchPage.openEditor

通过手动加入Struts包来开发J2EE工程,可是结果却发现不能使用Struts的默认编辑器来打开Struts配置文件,双击打开Struts配置文件时,就出错,图片如下:  点击如下图的右侧"Delt...

编译时出现fatal error C1853: "debug/xxx.pch" is not a precomplied header file with......错误的原因及解决办法(转)

错误原因: 该错误是因为当项目中混合了 .cpp 和 .c 文件时,编译器会对它们采取不同的编译方式(主要是因为对函数声明的处理方式不同),因而不能共用一个预编译头文件。 在 VC++ 中,默认的...

"remote:error:refusing to update checked out branch:refs/heads/master"的解决办法

在使用Git Push代码到数据仓库时,提示如下错误: [remote rejected] master -> master (branch is currently checked out) ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)