问题描述
多人在一个仓库协作时,在本地进行git pull
操作,遇到下面的错误,注意,已对下面中的项目信息进行了省略和替换:
error: cannot lock ref '...':is at <commit_id1> but expected <commit_id2>
From https://....
! <commit_id1>..<commit_id2> <branchName> -> origin/<branchName> (unable to update local ref)
问题分析
从错误日志来看,大概是本地分支和远程分支的HEAD不太一致,比较奇怪的是这个分支并不是我的。
-
去远程看,就是代码托管网站,查找该错误信息提到的branchName,发现有两个名字一样的分支,只是它们的大小写不一样,然后分别查看这两个分支的最后一次commit id,发现就是错误日志中列出来的。
看到这里,问题就相对比较清楚了,锁定大概方向。 -
进入到本地项目的路径,进入到下面的子文件夹:(.git是个隐藏文件夹;如果没有,那就是windows电脑没有设置显示隐藏文件,怎么设置就不赘述了)
.git\refs\remotes\origin
发现里面确实是有个小写的branchName的文件,里面保存的是一条完整的commit id,这就是ref。<