如何删除含特殊UTF-8字符的Git远程分支?
解决含特殊字符的Git分支删除问题
你遇到的问题本质是终端编码适配问题——本地终端把分支名里的UTF-8特殊字符Å(U+00C5)转义成了下划线,导致你用显示的错误分支名操作时Git识别不到真实分支。下面是几个实用的解决办法:
方法1:通过Bitbucket网页端直接删除(最省心)
如果命令行操作麻烦,直接在网页端搞定:
- 打开你的Bitbucket仓库页面,切换到「分支」标签页
- 找到显示为
rrseriaÅl_test_utility的分支,点击旁边的垃圾桶图标 - 确认删除后,在本地执行
git fetch -p更新远程分支缓存,这样git branch -r就不会再显示这个已删除的分支了
方法2:输入/粘贴正确的特殊字符分支名
如果你的终端支持UTF-8输入,直接用真实分支名操作:
- 从Bitbucket网页端复制完整的分支名
rrseriaÅl_test_utility - 执行远程删除命令:
git push origin :rrseriaÅl_test_utility - 如果本地还有这个分支,同样用复制的名字删除:
git branch -d rrseriaÅl_test_utility
方法3:通过分支哈希值定位删除
如果特殊字符输入有问题,用提交哈希值来操作:
- 先获取该分支的最新提交哈希:
执行git log --all --oneline,找到对应分支的提交记录,复制它的短哈希(比如a1b2c3d) - 用哈希值删除远程分支:
git push origin :$(git rev-parse --verify a1b2c3d^{commit}) - 本地分支如果存在,同样用哈希删除:
git branch -d $(git rev-parse --verify a1b2c3d^{commit})
方法4:查看原始分支名字节输出
如果终端把特殊字符转义了,用以下命令查看分支名的原始字节:
git branch -r | cat -A
你会看到类似origin/rrseria\303\205l_test_utility的输出(\303\205是Å的UTF-8字节转义),直接用这个原始字符串删除:
git push origin :rrseria\303\205l_test_utility
内容的提问来源于stack exchange,提问作者Martin Vystrčil
相关产品推荐
相关产品推荐

