vlambda博客
学习文章列表

GitHub要改默认分支名了,你的开源项目受影响了吗?


晚上浏览GitHub时偶然看到一个项目仓库github/renaming[1],该仓库是GitHub的官方仓库,内容相对权威。

大意是说:GitHub网站上仓库的默认分支是master,为了减少种族歧视,决定更改为main。看起来似乎是不大的改动,实际上牵一发而动全身,是系统性的影响。比如Git工作流、基于仓库的CI/CD、PR等流程。

正因为影响比较大,所以GitHub决定慢慢来,提醒各位开发者不要轻举妄动。

GitHub规划的时间线是:

  1. 对于已经把默认分支名改为main的,GitHub会提供支持,把指向原来master分支的链接重定向到新的。尚未改动的,GitHub后续会提供一个工具,帮助开发者尽可能无缝迁移。
  2. 7月31号,GitHub Pages功能支持任意分支,不再局限于master和gh-pages
  3. 今年夏天,GitHub平台将支持默认分支名可配置
  4. 到今年底,GitHub支持开发者修改默认分支名,并且不会影响PR、git clone等操作。

Git

Git是当前最主流的源代码版本管理工具,也是GitHub的底层技术。Git也会在2.28版本中提供新功能,提供init.defaultBranch,用于指定初始化项目时的默认分支名。

开发者首先要把自己的Git升级到2.28以上的版本:

➜  dotfiles git:(master) ✗ git --version
git version 2.28.0

然后运行命令git config --global init.defaultBranch main,这样你的git配置文件会出现如下新的配置:

[merge]
    tool = vimdiff
    log = true
[init]
 defaultBranch = main

然后我们新建一个Git仓库试试,这时新的分支已经变成main啦:

➜  newbranck git init
Initialized empty Git repository in /newbranck/.git/
➜  newbranck git:(main) 

总结

变更默认分支名这个看似简单的功能,却需要产业上下游协同努力,超过半年时间。可见软件开发和项目管理并不容易,这时你还会相信产品经理那句加个按钮,明天完成啊这种鬼话吗?

产品经理的嘴,骗人的鬼!

参考资料

[1]

github/renaming: https://github.com/github/renaming

[2]

the Git 2.28 blog post: https://github.blog/2020-07-27-highlights-from-git-2-28/#introducing-init-defaultbranch






我是陆道峰,菜鸡码农,以工程师的视角带你看待这个世界,欢迎关注~