Github直接推送到main

Github directly push to main

最近Github中的master更改为main,看来我需要先推送到master,然后再与main合并.当我尝试使用 --remote-upstream 推送到 main 时,出现错误:error: src refspec main does not match any.

在带有 OMZ 的 iterm2 上,当我第一次 运行 git init 我在路径中看到 master

如何直接推送到 main 而不是先推送到 master?

如果我没记错的话,在 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 的文档:

Use the specified name for the initial branch in the newly created repository. If not specified, fall back to the default name (currently master, but this is subject to change in the future; the name can be customized via the init.defaultBranch configuration variable).

阅读更多here


另一种选择,只需在远程存储库中保留默认分支名称 master

With the recent change of master to main in Github, it seems I need to first push to master and then merge with main.

其实没有,not with Git 2.31(下周一发布) * 空 GitHub 存储库的任何 git clone 都将创建一个本地存储库,其中“main”作为默认分支,即使 init.defaultBranch 仍设置为 master !

使用 v2 协议,GitHub 将向客户端传达远程默认分支(GitHub 的 main)到本地 Git 存储库的名称由 git clone.

创建