真是TN的邪了门了,今天在Gitee上创建了一个新项目,然后要把本地的代码push上去时,报了如下错误:
➜ *** git:(main) git push -u origin "master"
error: src refspec master does not match any
error: failed to push some refs to 'https://gitee.com/***/***.git'
用了这么多年git也没见过这个啊
咱们哪见过这种场面啊,赶紧百度走起来。
网上啊,真是什么五花八门的说法都有。
但是这时,注意嗷,很快嗷,我发现本地分支名为 main。怪不得,往master分支上push,push不了呢。
果然,这就是个突破口。我也记起昨天升级了xcode tools,里面的git肯定也升级了。至于把默认分支名改成了main是git做的还是Apple做的就不去深入探究了(因为我这里用的是Apple Git)。
那么Git为什么要把默认主分支名改成main呢?
其实,这就又是一个国外关乎ZZZQ的问题了。具体详细的原因可以到这篇文章中查看为什么Git分支开始从“master”变为“main”了?,这里简单截个图。
既然知道了原因,接下来就好搞了。
解决方法大致分为两种:1.把git默认分支名改回master。2.配合修改主分支为main。
1.把git默认分支名改回master
由于我这里要往Gitee提交代码,Gitee的默认主分支还是master,所以这里选择修改git的默认分支名。
在终端中执行如下命令:
git config --global init.defaultBranch master
查看配置是否生效:
vim /Users/[你的账户名]/.gitconfig
配置成功。
接下来重新init本地的代码。
默认分支名就变成master了。之后再push就可以成功了。
2.配合修改主分支为main
如果远程和本地本来都是master主分支。那么可以用如下方法修改主分支为main。
首先在本地更改分支
git branch -m master main
执行完本地只有main分支,没有了master分支。
接下来将新命名的main分支推送到远程仓库
git push -u origin main
因为远程仓库里没有main分支,这时候会自动创建main分支。
接下来将HEAD指向main分支
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
最后删除远程仓库中旧的master分支文章来源:https://www.toymoban.com/news/detail-674793.html
git push origin --delete master
参考资料
https://pages.carm.cc/doc/branch-main.html
https://www.jianshu.com/p/098c77d891a2文章来源地址https://www.toymoban.com/news/detail-674793.html
到了这里,关于git push 报错 error: src refspec master does not match any 解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!