Windows下Git因大小写差异分支无法删除远程origin的问题求助
Windows下Git大小写分支导致
git remote remove origin失败的解决办法 问题原因
Windows系统文件名不区分大小写,仓库中同时存在origin/foo和origin/Foo两个远程跟踪分支,执行git remote remove origin时,Git尝试创建的foo.lock和Foo.lock被系统识别为同一文件,触发锁文件冲突错误。
解决步骤
- 先备份本地仓库的
.git目录,防止操作失误丢失数据。 - 执行命令查看所有远程跟踪分支的完整引用路径:
确认git for-each-ref --format='%(refname)' refs/remotes/originrefs/remotes/origin/foo和refs/remotes/origin/Foo的存在。 - 使用
git update-ref命令精准删除其中一个冲突的远程跟踪引用(比如删除大写版本):
若需要也可一并删除另一个:git update-ref -d refs/remotes/origin/Foogit update-ref -d refs/remotes/origin/foo - 再次执行
git remote remove origin,此时不会再出现锁文件冲突问题。 - 最后添加新的远程仓库地址:
git remote add origin <你的新仓库URL>
补充说明
如果不想删除远程跟踪分支,也可以直接修改.git/config文件,找到[remote "origin"]节点,将url字段直接替换为新的仓库地址,跳过git remote remove操作,这种方式更快捷,也能避开锁文件冲突问题。
内容的提问来源于stack exchange,提问作者Dominik Kaszewski
相关产品推荐
相关产品推荐

