如何在 Github 存储库上将主分支重命名为 master

han*_*ndy 5 git github

我想创建一个 github 存储库并将main分支重命名为master.

如果我在 github 上创建一个新的存储库并执行

git init
git add README.md
git commit -m "first commit"
git branch -M master
Run Code Online (Sandbox Code Playgroud)

我得到

error: refname refs/heads/master not found
fatal: Branch rename failed
Run Code Online (Sandbox Code Playgroud)

所以我似乎不太了解git。这里有什么问题?


当我玩弄上面的东西时,我一定很困惑。发生以下情况:

git init 创建存储库

git add README.md 添加文件

git commit -m "first commit"将文件添加到master分支,因为这仍然是 git 的默认值

所以我一开始就不必重命名它。现在 Github 使用默认的 main,可以在 github.com 上的设置 -> 存储库中更改

Cod*_*ger 27

使用-m选项(移动/重命名)而不是-M使用您要重命名的分支的名称(此处main)将起作用。然后您可以推送重命名的分支并维护您的引用日志。

git branch -m main master
git push -u origin master
Run Code Online (Sandbox Code Playgroud)

我还写了一篇博客文章,其中包含更多详细信息,以防在重命名分支之前存储库被其他人克隆。你可以在这里查看。


jth*_*ill 4

如果README.md实际上不存在,git checkout -B master就会做你想做的事。 git branch -M期待一个实际引用某物的完整引用,而不是存根git init(或git checkout --orphan)创建的。我同意它“应该”处理这种情况,是否值得修补取决于任何有能力编写好修补程序的人。不应该太难

我得出这个答案的测试用例只是在空目录中运行命令;产生了您报告的症状。在(已经)包含 a 的目录中运行它们可以按照README.md您想要的方式运行,即不会产生该错误。您是否期望git init创建默认值README.md