如何移除提示“does not point to a valid object”错误的Git分支
解决Git无效远程引用的问题
执行git fetch -p清理已不存在的远程分支时,碰到报错:
error: refs/remotes/origin/bad/branch does not point to a valid object!
排查后发现这个分支在.git/refs/remotes下没有对应的独立文件,用常规删除命令也无法解决:
$ git branch -D origin/bad/branch error: branch 'origin/bad/branch' not found. $ git branch -D bad/branch error: branch 'bad/branch' not found. $ git branch -D -r origin/bad/branch error: Couldn't look up commit object for 'refs/remotes/origin/bad/branch'
不用删除整个工作区,用以下两种方法就能解决:
方案1:用git update-ref直接删除引用
运行这条Git底层命令,直接移除无效的远程引用:
git update-ref -d refs/remotes/origin/bad/branch
这个命令不受引用是否指向有效对象的限制,能直接删掉目标引用。
方案2:手动编辑packed-refs文件
如果引用被打包到.git/packed-refs文件中(这就是找不到独立引用文件的原因),可以手动修改:
- 打开
.git/packed-refs文件(用任意文本编辑器) - 找到包含
refs/remotes/origin/bad/branch的行,删除整行 - 保存文件并退出
完成操作后再执行git fetch -p,就不会再出现之前的错误了。
内容的提问来源于stack exchange,提问作者MadScientist
相关产品推荐
相关产品推荐

