Git 3.0 会把用 git init 新建仓库时的默认分支名从 “master” 改为 “main”。这事儿在 Git 2.52 的更新日志里写明了,换言之,等到 Git 3.0 正式发布,新的仓库默认分支名就变了。

这条消息是在 11 月 26 日通过 Git 2.52 的 changelog 对外确认的,明确写到这个改动会在下一代主版本里生效。换句话说,官方不是临时决定,而是把这个改动放进了版本计划里,等下次大版本发布就正式启用。现有的仓库不会被强制改名,只有在使用 Git 3.0 及以上版本执行 git init 新建仓库时,默认才会是 main。
回过头看背景,早在 2020 年,GitHub 就先一步把新建仓库的默认分支从 master 改成了 main。那会儿的初衷是避免使用可能引起联想的历史词汇,朝着更中性的命名靠拢。目前 Git 官方跟进,说明这不是一家公司的单独动作,而是开源社区在用词上逐步达成的一种共识。按时间线来说,GitHub 先改,社区讨论,官方最后把改动纳入标准流程,这个顺序也挺清楚。

技术上,这个改动对代码本身没影响。分支名不过是个标签,Git 的底层机制、提交历史、分支管理这些核心功能都不变。你的工作流、合并、rebase、push、pull 都照常,只是新仓库创建后会拿到一个叫 main 的初始分支名。如果团队里有人还习惯叫 master,大家在同一个项目里最好先约定好名字,免得不同机器、新旧版本之间产生不必要的混淆。
现有仓库不会自动改名,这一点很重大。那些老项目继续沿用 master 完全没问题,不会被动收到影响。要是团队想把已有仓库改成 main,可以手动完成分支重命名并同步远端,过程需要在本地改名、把新分支推上去、在代码托管平台上切换默认分支并删除旧分支。这类操作要有人负责,最好在低峰期操作并通知好所有协作者,避免有人在改名过程中 push 到旧分支引发麻烦。

对于想提前适应新规则的开发者,有办法自己设置默认分支名。Git 支持配置初始分支名字的选项,可以在全局或仓库级别指定,像把 init.defaultBranch 设成 main,这样用旧版本或新版 git init 时都能得到你想要的名字。具体配置一行命令就能搞定,方便那些有统一规范的团队提前部署。
从社会语境来说,这次改动更像是个象征性的举措。行业里去掉可能带来不适感的词汇,不只是在改标签,还是在传达一种态度:技术圈里也开始关注用词的包容性。有人会觉得这是小题大做,也有人认为这是必要的敏感度升级。不管怎么看,实际效果是中性的——代码不会因此变得更好也不会变差,但在公共话语上,这样的改变会产生连带影响,促使更多项目重新审视用语习惯。

对普通开发者而言,影响主要体目前两方面:一是新仓库默认分支名,二是团队内部需要做好沟通。日常开发的人可能会觉得没啥大不了,但在 CI 配置、自动化脚本、部署脚本里硬编码分支名的项目就需要检查一遍,避免由于默认分支名不同造成自动化流程失败。遇到这类问题,排查时把分支名作为可能的缘由之一,能省不少时间。
说点个人见解:这样的改动看起来不动声色,但把官方层面的默认值改掉,本身就有示范效应。既然能通过配置轻松适配,就不必太抗拒变更。有些惯性来自工具默认值,改变默认值实则是一种引导,让新项目更容易遵循新的命名规范。
总体而言,这次改动既有技术层面的考量,也带着社会文化的意味。技术上可控、风险低;协作上要有人把关;文化上则是一个信号。接下来,大家在初始化仓库、编写脚本、配置 CI/CD 时注意一下分支名就行,不然碰到自动化失败时你会怀疑人生。


