我是 github/gitlab 上托管的一个项目的维护者,该项目有许多贡献者。我想从 usingmaster作为默认分支迁移到main. 我该如何做到这一点而不搞砸?
我读过一些关于该主题的博客文章,但更喜欢在 StackOverflow 上进行讨论,其中评论可能会指出一个人可能忽略的问题。
Github 提供了迁移选项,所以这很简单。但即使对于像 gitlab 这样还没有类似功能的任何其他服务,只要您执行正确的步骤,它就相对简单,至少从技术角度来看是这样。
无论哪种方式,除非您的项目非常小,否则最大的麻烦肯定是让所有贡献者正确地将修复应用于正在进行的工作。
吉图布
在项目页面上,导航到settings,然后在“默认分支”部分中,按编辑按钮并将其从 更改master为main。
Gitlab,又名手动迁移
我假设您的远程/上游被调用origin- 如果它被称为不同的东西,请origin相应地在所有命令中替换为该名称。
master为main,并将其推送到上游:git fetch origin
git branch --move master main
git push --set-upstream origin main
Run Code Online (Sandbox Code Playgroud)
告诉您的上游这main是新的默认值:
settings/repository“默认分支”部分,选择main并按“保存更改”。然后,在同一页面上,转到“受保护的分支”部分,然后保护main和取消保护master,然后按“保存更改”。master在上游删除- 不是绝对必要的,但确实减少了混乱:
git push origin --delete master
Run Code Online (Sandbox Code Playgroud)
master迁移到推送main:
master”。将下拉列表从 更改master为main。git fetch origin --prune && git branch -m master main && git branch --set-upstream-to=origin/main main
Run Code Online (Sandbox Code Playgroud)
据我所知,就是这样 - &&s 是一个好主意,可以在出现问题时保护您。
如果您按照此建议遇到问题,请发表评论。git这些乱七八糟的事情很难解开,所以我们至少能做的就是尽量不要重新发明轮子。