如何在Github仓库上将main分支重命名为master

xdyibdwo  于 12个月前  发布在  Git
关注(0)|答案(3)|浏览(210)

我想创建一个github仓库,并将main分支重命名为master
如果我在github上创建一个新的仓库,

git init
git add README.md
git commit -m "first commit"
git branch -M master

我得到

error: refname refs/heads/master not found
fatal: Branch rename failed

所以我似乎对git理解得不够好。有什么问题吗
我一定是在玩上面的东西的时候弄糊涂了。发生以下情况:
git init创建存储库
git add README.md添加文件
git commit -m "first commit"将文件添加到master分支,因为这仍然是git的默认设置
所以我一开始就不用给它重新命名现在Github使用默认的main,可以是changed in settings -> repositories on github.com

42fyovps

42fyovps1#

使用-m选项(move/rename)而不是-M,并使用要重命名的分支的名称(这里是main)将有效。然后你就可以推送你重命名的分支并维护你的reflog了。

git branch -m main master
git push -u origin master

我还写了一篇博客文章,提供了更多的细节,以防在重命名分支之前,其他人克隆了这个仓库。You can check it out here.

avwztpqn

avwztpqn2#

如果README.md实际上不存在,git checkout -B master将执行您想要的操作。git branch -M期望的是一个完整的引用,它实际上引用了一些东西,而不是git init(或git checkout --orphan)创建的存根。我同意它“应该”处理这个案件,它是否值得一个补丁是由任何人能够写一个好的。应该不会太难。
我的测试用例导致了这个答案,只是在一个空目录中运行命令;导致了你报告的症状在(已经)包含README.md的目录中运行它们可以按照您想要的方式工作,即。不会产生这种错误。您是否希望git init创建一个默认的README.md

rhfm7lfc

rhfm7lfc3#

我在Azure DevOps中这样做了。在GitHub上应该是一样的。
在项目根目录下的终端中运行这些行。

git branch -m main master
git push -u origin master
git push origin --delete main

然后将master设置为默认分支。

相关问题