Github 太狠了,居然把 "master" 干掉了!

Github 太狠了,居然把 "master" 干掉了!

Java技术栈

www.javastack.cn

关注阅读更多优质文章

前段时间栈长有看到 Github 和 master 分支变更的新闻,当时没有注意细节,直到今天我创建仓库时:

Github 太狠了,居然把 "master" 干掉了!

看了半天感觉有点不对劲啊。。。

怎么 master 不见了,之前默认主干分支名称都是叫 master 啊,直到现在我才意识到了这个变更,原来是把 master 变成 main 了。

刚开始,我还有点不愿意接受这个现实,毕竟用了这么多年的 master,养成习惯了,也有感情了,你说变就变...

Github 太狠了,居然把 "master" 干掉了!

我本来还想着说不管了,我继续改成用我的 master 吧,后来还是想着用 main 算了,毕竟官方变更应该有它的理由,顺便想着研究下这背后的逻辑。。

1、为什么要变更 master 名称?

关注公众号Java技术栈的朋友应该都知道,今天 7 月份的时候 MySQL 也有类似的举动:《MySQL 宣布停止使用 master、slave!》,MySQL 宣布将 master、slave、blacklist(黑名单)和 whitelist(白名单)等术语分别替换为 source、replica、blocklist 和 allowlist。

这其中的奥秘就不用多说了,在国外,主、从、黑都涉及到种族歧视,所以很多涉及到这些的都被改名了,包括黑人牙膏,所以现在国外很多科技公司也加入了改名的征程也不奇怪了。

2、为什么是 main,而不是其他名称?

抱着学习的精神,我也找到了 Github 的官方改名申明:

https://github.com/github/renaming

Github 分析认为,main 是 master 的最佳替代名称,也是最受欢迎的,因为它能够很好的翻译大多数语言,也因为 main 够短,不用费脑子,凭肌肉记忆就让你见名知义。

如果你想让新建的仓库还是要用 master 或者默认其他名称,也不是不行,可以在设置中修改默认的名称:

Github 太狠了,居然把 "master" 干掉了!

设置默认仓库分支名称地址:

https://github.com/settings/repositories

3、以前的 master 受不受影响?

从官方的申明来看,以前创建的仓库不受影响,Github 会分几个阶段进行修改,目的是尽可能的减少对现有项目的干扰。

栈长也看了下之前创建好的仓库,主干依然还是 master,所以说之前的并不会受影响,只是新建的默认主干分支名称变成 main 了。

想象下,如果 Github 批量把所有的仓库 master 名称都修改为 main,那势必是一场灾难,因为大家的主干都叫 master,它如果冷不丁的改了,主干的更新、推送就会受到影响,那些依赖 Github 仓库的业务也会受到影响,全球用户众多,所以肯定不敢贸然变更的。

所以,现在不变更也没事,Github 正在研发一款工具,到今年年底,现有的仓库也能够无缝地重命名默认分支了。

一起拭目以待吧,栈长也会持续关注动态,有消息公众号Java技术栈第一时间推送,不要走开。

Github 太狠了,居然把 "master" 干掉了!

Github 太狠了,居然把 "master" 干掉了!

Github 太狠了,居然把 "master" 干掉了!

Github 太狠了,居然把 "master" 干掉了!

Github 太狠了,居然把 "master" 干掉了!

Github 太狠了,居然把 "master" 干掉了!

Github 太狠了,居然把 "master" 干掉了!

关注Java技术栈看更多干货

Github 太狠了,居然把 "master" 干掉了!

Github 太狠了,居然把 "master" 干掉了!

戳原文,获取精选面试题!