直接将代码推送到主分支(main)的Github操作

5
最近Github将主分支的名称从master改为main,因此似乎我需要先推送到master然后再与main合并。当我尝试使用--remote-upstreammain推送时,会出现错误:error: src refspec main does not match any
在使用OMZ的iterm2上,当我首次运行git init时,在路径中看到了master
如何直接将内容推送到`main`,而不是先推送到`master`呢?
2个回答

6

如果我没记错的话,在Git 2.28.0版本中,你可以使用命令git init -b来设置默认分支。

例如,要创建一个以main分支为默认分支的新存储库。

git init -b main

如果你喜欢输入更长的名称:
git init --initial-branch=main

你甚至可以全局设置它。

git config --global init.defaultBranch main

作为替代方案,在创建新仓库时,您可以直接使用git clone命令将其克隆到您的系统中。默认分支将相应地进行调整。
关于git init -b命令,摘自Git文档:

在新创建的存储库中使用指定名称作为初始分支的名称。如果未指定,则回退到默认名称(当前为master,但将来可能会更改; 可以通过init.defaultBranch配置变量自定义名称)。

在此处阅读更多信息。
另一种选择是在远程存储库中保留默认分支名称为master

谢谢!我如何在现有的仓库中将分支更改为主分支并将其设置为默认远程? - electrophile
1
如果这是一个已存在的远程仓库,那么操作就很简单。只需要执行 git branch maingit checkout maingit push -u origin main 命令,然后将 main 分支设置为默认分支即可。你可以在 GitHub 仓库设置中找到它(在顶部选项卡之一)。成功将默认分支更新为 main 后,可以随意删除 master 分支。 - Nicholas

2
最近Github将默认分支从master改为main,似乎需要先将代码推到master分支,然后再合并到main分支。但实际上不需要这样做,根据Git 2.31版本(将在下周发布)的更新,任何空的GitHub库的git clone操作都会创建一个默认分支为"main"的本地仓库,即使init.defaultBranch仍然设置为master!通过协议v2,GitHub会将远程默认分支名(GitHub的默认分支名为main)与git clone创建的本地Git仓库通信。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接