使用GitHub Desktop推送提交失败,报错cannot lock ref 'refs/remotes/origin/main'
修复方案
该报错由本地存储的远程main分支引用文件损坏导致,Git无法正常锁定、更新该引用,因此推送时更新本地远程引用失败。你之前执行的git remote set-head origin resources是修改远程仓库默认HEAD指向的命令,和该问题无关,因此没有修复效果,可按以下步骤操作:
- 完全关闭GitHub Desktop,避免进程占用仓库的Git相关文件
- 进入本地仓库根目录,打开Git Bash或系统终端,执行以下命令删除已经损坏的远程main引用:
git update-ref -d refs/remotes/origin/main
也可以手动进入仓库的.git/refs/remotes/origin/目录,直接删除main文件 - 执行命令从远程拉取最新引用,重建本地的远程分支记录:
git fetch origin - 重新打开GitHub Desktop,再次执行推送操作即可正常完成
如果同时存在其他分支的同类引用损坏问题,可以额外执行git gc --prune=now清理所有损坏引用和仓库冗余文件,再重新执行fetch操作即可。
内容的提问来源于stack exchange,提问作者Mohammed Amwar
相关产品推荐
相关产品推荐

