本地已有Git仓库代码推送至GitHub出现报错的问题咨询
问题原因分析
- 执行
git push -u origin main返回Everything up-to-date不属于报错,该提示表示本地main分支的所有提交已经和远程origin对应分支的内容完全一致,且已经成功建立本地main分支与远程origin/main分支的跟踪关系,这步执行结果本身是正常的。 - 执行
git push -u origin master报错的核心原因有两点:- 你此前已经执行
git branch -M main将本地主分支重命名为main,本地不存在名为master的分支,Git找不到对应的本地引用源,因此触发src refspec master does not match any错误。 - 两次推送操作对应的远程仓库地址不匹配:你最初添加origin时绑定的是
https://github.com/upsharwan/learngit.git,但推送master分支时指向的是https://github.com/upsharwan/gitlearn.git,两个是完全独立的GitHub仓库,进一步导致推送引用匹配失败。
- 你此前已经执行
可行解决方法
按顺序执行以下操作排查修复即可:
- 确认本地分支与提交状态:执行
git branch查看本地分支列表,带*标记的为当前所在分支,正常应显示为main;再执行git log --oneline,确认你提到的2次代码提交确实存在于当前分支。 - 校验修正远程仓库地址:执行
git remote -v查看当前绑定的origin远程地址,若显示的地址不是你目标推送的https://github.com/upsharwan/learngit.git,执行git remote set-url origin https://github.com/upsharwan/learngit.git修正配置。 - 停止尝试推送master分支:当前GitHub新建仓库默认主分支即为
main,你本地也已经完成分支重命名,直接执行git push origin main即可。此前返回Everything up-to-date就代表代码已经推送完成,直接打开GitHub对应仓库页面刷新即可看到提交记录。 - 若刷新GitHub仓库仍看不到提交内容,先执行
git status确认所有代码都已经commit提交,再执行git push -f origin main强制推送即可(注意强制推送会覆盖远程分支的现有内容,仅在确认远程仓库无重要需保留内容时使用)。
内容的提问来源于stack exchange,提问作者user19519558
相关产品推荐
相关产品推荐

