git push后出现src refspec dev does not match any

今天在提交代码时git push xxx xxx 之后出现如下错误,记录一下

git push origin dev
error: src refspec dev does not match any

本人之前因为新建模块错误有删过项目重新再github上clone的经历,项目在github上有两个分支,dev和master

附上git拉取过程

git clone xxx

git pull origin dev

以上过程都是正常的

在修改完代码后我想提交

git pull origin dev

git add .

git commit -m"kevin update something"

git pull origin dev

上面的过程都是正常的

异常重现

git push origin dev

error: src refspec dev does not match any

在看了一些博客之后,了解到;

  • Git Reference简写为refs,是管理本地分支的

    • 1)本地分支的Reference格式:refs/heads/<local_branch_name>
      如refs/heads/master,在保证唯一的情况下可以简写为master
    • 2)远程追踪分支的Reference格式:refs/remotes/ <remote_repository>/<remote_branch_name>
  • Reference Specification简称refspec
    在执行push或fetch操作时,refspec用以给出本地Ref和远程Ref之间的映射关系

所以问题应该是出在了本地分支和远程当前分支不匹配上

查看当前本地分支

git branch 

发现当前只有master默认分支,而我提交的是到远程的dev分支

新建并切换分支

git checkout -b dev

Switched to a new branch 'dev'

git branch

* dev
  master

重新提交

git pull origin dev

git add .

git commit -m"xxx"

git pull origin dev

git push origin dev

成功提交

  • 28
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
回答: 当出现"git push error src refspec master does not match any"错误时,这通常是由于本地仓库没有与远程仓库的主分支(master)对应的分支造成的。这个错误可能是由于以下几个原因引起的。 首先,你需要确保本地仓库中存在一个与远程仓库主分支对应的分支。你可以通过以下命令创建一个名为"master"的分支,并将其与远程仓库的主分支关联起来: ``` git checkout -b master git push -u origin master ``` 这将创建一个名为"master"的本地分支,并将其推送到远程仓库。 其次,你还可以尝试将git的默认分支名改回"master"。在终端中执行以下命令: ``` git config --global init.defaultBranch master ``` 这将把git的默认分支名修改为"master",以便与Gitee的默认主分支对应。 最后,如果以上方法都无效,你可以尝试删除本地仓库并重新克隆远程仓库。首先,备份你的本地修改,然后删除本地仓库文件夹。接下来,使用以下命令重新克隆远程仓库: ``` git clone <远程仓库URL> ``` 然后,按照之前的步骤创建一个名为"master"的分支,并将其与远程仓库的主分支关联起来。 总结起来,当出现"git push error src refspec master does not match any"错误时,你可以尝试创建一个与远程仓库主分支对应的本地分支,修改git的默认分支名为"master",或者删除并重新克隆远程仓库。希望这些方法能够帮助你解决问题。[1][2][3]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值