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文件也可以解决该问题。(直接释放锁)

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 pull 遇到 error : cannot lock ref xxx ’: ref xxx is at ( 一个 commit ID ) but expected 解决办法 在执行 git pull 遇到 如下错误: error : cannot lock ref xxx ’: ref xxx is at ( 一个 commit ID ) but expected 遇到 这个错误会导致 git pull 失败。 原因是你这个 git 工程的. git / ref s目录下跟踪的某些 git 分支,在 git pull 候,与远端的
1. git pull 代码出现 cannot lock ref ' ref s/remotes/origin/branch_name': is at 95b2ddb09e303b4857d6c0fd6545a5062349e00e but expected 20525f2edbef6ce8b3f6ff8c107abc25e9de973f 2.打开 git -bash, 输入 git pull 突然发现远
error : cannot lock ref ' ref s/remotes/origin/innertag': is at 0440433ebbca6fc0a3dc041946346d004ae1d7ee but expected 98150e1dcad8640daa66b5499d6e234d71806a6e From code. xxx .com:xchannel/xc-centre ! 98150e1d..7a2c45c5 innertag
update_ ref failed for ref ' ref s/remotes/origin/master': cannot lock ref ' ref s/remotes/origin/master': unable to resolve ref erence ' ref s/remotes/origin/master': re ference broken
remote: error : cannot lock ref ' ref s/heads/dev/mz/dev': ' ref s/heads/dev' exists; cannot create ' ref s/heads/dev/mz/dev' To http://xx.xx.xx.xx/ xxx x/xx. git 原因为:远程有 一个 分支为dev分支,然后本地新创建了 一个 分支为dev/mz/dev 所以会有问题; 解决: git branch -m feature/mz/dev 修改分支名称即可!
文章目录问题描述问题分析解决方案解决当次一劳永逸建议 多人在 一个 仓库协作 ,在本地进行 git pull 操作, 遇到 下面的错误,注意,已对下面中的项目信息进行了省略和替换: error : cannot lock ref '...':is at < commit _ id 1> but expected < commit _ id 2> From https://.... ! < commit _ id 1>..< commit _ id 2> <branchName> -&
git push的 候报错:remote: error : cannot lock ref ref s/heads/develop’: is at 2e57ec93df385ba97723ccc9a36a903d769947f1 but expected 69984ad367e8c21d1bad447a33251f8a9936e8ee To http:// git lab….. git ! [remo
git - commit - id -plugin is a plugin quite similar to https://fisheye.codehaus.org/browse/mojo/tags/buildnumber-maven-plugin-1.0-beta-4 for example but as buildnumber at the time when I started this plugin only supported CVS and SVN, something had to be done. I had to quickly develop an git version of such a plugin. For those who don't know the previous plugins, it basically helps you to help you with the following tasks and answer related questions Which version had
完整的错误信息 Сannot Run Git xcrun: error : inval id active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 看了下 Git 命令能否正常使用  命令行 git –help 依然报和上面同样的错误 在查找了下 git 的安装目录   whereis git /usr/bin/