600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > git push 报错 error: src refspec master does not match any 解决

git push 报错 error: src refspec master does not match any 解决

时间:2022-01-18 02:35:21

相关推荐

git push 报错 error: src refspec master does not match any 解决

真是TN的邪了门了,今天在Gitee上创建了一个新项目,然后要把本地的代码push上去时,报了如下错误:

➜ *** git:(main) git push -u origin "master"error: src refspec master does not match anyerror: failed to push some refs to '/***/***.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分支

git push origin --delete master

参考资料

/doc/branch-main.html

/p/098c77d891a2

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。