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


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

本文分享自微信公众号 - 机器学习与系统(aimlsystem)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Github仓库master分支到main分支迁移指南

1概述2020年10月1日后,Github会将所有新建的仓库的默认分支从master修改为main,这就导致了一些旧仓库主分支是master,新仓库主分支是main的问题,这在有时候会带来一些麻烦,因此这里提供一种方案将旧仓库的master分支迁移到main分支。2具体步骤四步: