从 Master 迁移到 Main 的备忘单
仅供我自己参考,以及任何有兴趣将主要 git 分支从master
移动到 的人参考main
。
我对在这里讨论这样做的理由不感兴趣,这件事已经被重复了数千次了。
TL;DR:
移动现有项目
1. 重命名分支
git branch -m master main # history unchanged
git push origin HEAD
git branch -u origin/main main
2. 重新定位现有 PR
您可以使用https://github.com/ethomson/retarget_prs来执行此操作。
3. 设置默认分支
确保你已经推送了你的main
分支,然后前往https://github.com/USERNAME/REPONAME/settings/branches
-此处的文档
4. 更新本地克隆(如果适用)
如果您正在处理 OSS 的本地分支,这将非常方便 - 感谢https://twitter.com/xunit/status/1269881005877256192
$ git branch --unset-upstream
$ git branch -u origin/main
为新项目设置默认值
main
您可以将在您的机器上创建的新项目设置为也从分支开始。
## Git 2.28+
git config --global init.defaultBranch main
## Git 2.27-
git config --global alias.new '!git init && git symbolic-ref HEAD refs/heads/main'
如果你和我一样用的是 Mac,可以brew upgrade git
下载Git来更新版本。最近的版本还包含了sparse-checkout,方便你升级。
这是针对本地机器上的新项目- 不幸的是,GitHub 尚未对在 GitHub 上创建的新存储库的默认分支进行新设置main
。
编辑:现在已经有了!前往https://github.com/settings/repositories进行设置
设置 Bash 别名
最后,您可以设置bash 别名,它会main
先尝试,然后master
无论您使用什么,都可以使用相同的别名:
alias gpom="git push origin main 2> /dev/null || git push origin master"
GitHub 的计划
如果 GitHub 的流程看起来比较手动,不用担心。我在 GitHub 上有数百个仓库。GitHub 计划发布自动化工具来帮助你管理这些仓库。
计划:https://github.com/github/renaming
- ✅ 7 月 17 日 - 已删除分支的重定向
- ✅ 8 月 1 日 - GitHub Pages 可从任何分支运行
- ✅ 8 月 26 日 -能够更改 Github 中的默认分支
main
✅ 10 月 1 日 - GitHub 上的默认分支自动更改为- ☑ 夏季 - 可配置新存储库的默认值
- ☑ 2020 年底 - 重新定位现有存储库的 PR/发布/页面(https://twitter.com/swyx/status/1351772911082762240?s=20)