Git新建本地分支无法推送至远端仓库的原因及解决方法
Git报错
src refspec does not match any的原因及解决方案 你遇到的报错内容如下:
error: src refspec feature/feature-branch does not match any error: failed to push some refs to 'https://bitbucket.org/myproject/myproject.git'
核心原因
该报错本质是Git无法找到你要推送的本地分支对应的引用记录,常见触发场景如下:
- 本地分支名与推送时指定的分支名不匹配:你本地创建的分支为
feature-branch,如果推送时误写为feature/feature-branch,Git找不到对应本地分支就会抛出错误 - 本地分支无有效提交记录:如果
git commit操作被pre-commit钩子拦截、提交说明为空触发校验等导致提交未实际成功,本地分支没有提交记录,Git无法识别该分支的引用 - 推送时未处于目标分支下:执行push操作前误切换到了其他分支,直接推送不存在的分支名也会触发报错
- 空仓库未完成首次提交:如果是新初始化的仓库,还没有任何提交记录就执行推送,也会出现同类报错
解决方案
第一步:先排查本地分支和提交状态
- 执行
git branch查看本地分支列表,确认feature-branch真实存在,且当前处于该分支下(分支名前有*标记) - 执行
git log查看提交记录,确认git commit操作没有执行失败
第二步:对应场景处理
- 如果是分支名拼写错误:直接执行正确的推送命令即可
git push origin feature-branch - 如果确实需要推送到远端的
feature/feature-branch分支:手动指定本地分支与远端分支的映射关系即可git push origin feature-branch:feature/feature-branch - 如果是提交未成功:重新走一遍提交流程即可
git add . git commit -m "填写你的提交说明" git push origin feature-branch
如果要简化后续推送操作,首次推送时可以添加上游分支绑定参数:git push -u origin feature-branch,后续在该分支下直接执行git push即可完成推送。
内容的提问来源于stack exchange,提问作者drake035
相关产品推荐
相关产品推荐

