【问题标题】:Github directly push to mainGithub 直接推送到 main
【发布时间】:2021-06-11 18:13:25
【问题描述】:

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

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

如何直接push到main而不是master?

【问题讨论】:

    标签: git github git-branch git-push git-remote


    【解决方案1】:

    如果我没记错的话,在 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 配置变量自定义名称)。

    阅读更多here


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

    【讨论】:

    • 谢谢!如何在现有 repo 中将分支更改为 main 并将其设置为默认远程?
    • 如果它是现有的遥控器,那么它很简单。只需执行git branch maingit checkout maingit push -u origin main,然后将main 分支设置为默认分支。您可以在 GitHub 存储库设置中找到它(在顶部选项卡之一中)。成功将默认分支更新为main 后,请随时删除master 分支。
    【解决方案2】:

    随着最近Github的master改为main,看来我需要先push到master,然后与main合并。

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

    使用协议 v2,GitHub 会将远程默认分支的名称(GitHub 的main)传递给由git clone 创建的本地 Git 存储库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-12
      • 2022-11-04
      • 2022-01-12
      • 2013-05-30
      • 2017-08-22
      • 2020-01-08
      • 2018-02-27
      • 2014-02-13
      相关资源
      最近更新 更多