Git推送报错fatal: the remote end hung up unexpectedly,分支大小写误用怎么办
核心原因
该报错由大小写不敏感文件系统(Windows默认NTFS、macOS默认APFS均属于此类)下的Git分支引用冲突导致:你此前检出小写abc分支时,本地Git生成了大小写不敏感的分支引用缓存,后续推送大写ABC分支时,本地缓存和远程分支名规则冲突,导致远程端无法识别推送请求主动断开连接。
解决步骤
1. 清理本地冲突的分支引用缓存
首先切换到无冲突的基准分支(如main/master),删除本地所有大小写版本的目标分支,同步远程引用:
# 切换到基准分支 git checkout main # 强制删除本地大小写两个冲突分支 git branch -D abc ABC # 清理本地失效的远程分支缓存 git remote prune origin # 重新拉取最新的远程分支列表 git fetch origin
2. 正确检出大写目标分支
严格匹配远程分支的大小写重新检出分支:
git checkout origin/ABC -b ABC
执行git branch确认本地分支列表仅存在大写ABC分支,无小写abc分支即可。
3. 重新提交修改后推送
将你此前rebase完成的提交cherry-pick到新检出的ABC分支,确认提交链符合预期后执行强制推送:
git push origin ABC -f
长期避坑配置
可以开启Git的大小写敏感校验,避免后续再出现同类分支名大小写误用问题:
git config core.ignorecase false
内容的提问来源于stack exchange,提问作者Zhang
相关产品推荐
相关产品推荐

