从 Master 迁移到 Main 的备忘单

2025-06-10

从 Master 迁移到 Main 的备忘单

在 Twitter 上分享

仅供我自己参考,以及任何有兴趣将主要 git 分支从master移动到 的人参考main

我对在这里讨论这样做的理由不感兴趣,这件事已经被重复了数千次了。

TL;DR:

从 Master 到 Main 的备忘单

移动现有项目

1. 重命名分支

git branch -m master main # history unchanged
git push origin HEAD
git branch -u origin/main main
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

为新项目设置默认值

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'
Enter fullscreen mode Exit fullscreen mode

如果你和我一样用的是 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"
Enter fullscreen mode Exit fullscreen mode

GitHub 的计划

如果 GitHub 的流程看起来比较手动,不用担心。我在 GitHub 上有数百个仓库。GitHub 计划发布自动化工具来帮助你管理这些仓库。

计划:https://github.com/github/renaming

鏂囩珷鏉ユ簮锛�https://dev.to/swyx/move-primary-git-branch-from-master-to-main-m7c
PREV
网络基础知识:架构和原理
NEXT
如何设计几乎任何后端并将其部署到 AWS(无需代码)