Github 太狠了,居然把 "master" 干掉了!
前段时间栈长有看到 Github 和 master 分支变更的新闻,当时没有注意细节,直到今天我创建仓库时:

看了半天感觉有点不对劲啊。。。
怎么 master 不见了,之前默认主干分支名称都是叫 master 啊,直到现在我才意识到了这个变更,原来是把 master 变成 main 了。
刚开始,我还有点不愿意接受这个现实,毕竟用了这么多年的 master,养成习惯了,也有感情了,你说变就变...

我本来还想着说不管了,我继续改成用我的 master 吧,后来还是想着用 main 算了,毕竟官方变更应该有它的理由,顺便想着研究下这背后的逻辑。。
1、为什么要变更 master 名称?
关注公众号Java技术栈的朋友应该都知道,今天 7 月份的时候 MySQL 也有类似的举动:《MySQL 宣布停止使用 master、slave!》,MySQL 宣布将 master、slave、blacklist(黑名单)和 whitelist(白名单)等术语分别替换为 source、replica、blocklist 和 allowlist。
这其中的奥秘就不用多说了,在国外,主、从、黑都涉及到种族歧视,所以很多涉及到这些的都被改名了,包括黑人牙膏,所以现在国外很多科技公司也加入了改名的征程也不奇怪了。
2、为什么是 main,而不是其他名称?
抱着学习的精神,我也找到了 Github 的官方改名申明:
Github 分析认为,main 是 master 的最佳替代名称,也是最受欢迎的,因为它能够很好的翻译大多数语言,也因为 main 够短,不用费脑子,凭肌肉记忆就让你见名知义。
如果你想让新建的仓库还是要用 master 或者默认其他名称,也不是不行,可以在设置中修改默认的名称:

设置默认仓库分支名称地址:
3、以前的 master 受不受影响?
从官方的申明来看,以前创建的仓库不受影响,Github 会分几个阶段进行修改,目的是尽可能的减少对现有项目的干扰。
栈长也看了下之前创建好的仓库,主干依然还是 master,所以说之前的并不会受影响,只是新建的默认主干分支名称变成 main 了。
想象下,如果 Github 批量把所有的仓库 master 名称都修改为 main,那势必是一场灾难,因为大家的主干都叫 master,它如果冷不丁的改了,主干的更新、推送就会受到影响,那些依赖 Github 仓库的业务也会受到影响,全球用户众多,所以肯定不敢贸然变更的。
所以,现在不变更也没事,Github 正在研发一款工具,到今年年底,现有的仓库也能够无缝地重命名默认分支了。
一起拭目以待吧,栈长也会持续关注动态,有消息公众号Java技术栈第一时间推送,不要走开。
近期热文推荐:
1.Java 15 正式发布, 14 个新特性,刷新你的认知!!
2.终于靠开源项目弄到 IntelliJ IDEA 激活码了,真香!
3.我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。
觉得不错,别忘了随手点赞+转发哦!
Github 太狠了,居然把 "master" 干掉了!的更多相关文章
- https://github.com/chenghuige/tensorflow-exp/blob/master/examples/sparse-tensor-classification/
https://github.com/chenghuige/tensorflow-exp/blob/master/examples/sparse-tensor-classification/ ...
- 结对项目https://github.com/bxoing1994/test/blob/master/源代码
所选项目名称:文本替换 结对人:曲承玉 github地址 :https://github.com/bxoing1994/test/blob/master/源代码 结对人github地址:ht ...
- https://github.com/python/cpython/blob/master/Doc/library/contextlib.rst 被同一个线程多次获取的同步基元组件
# -*- coding: utf-8 -*- import time from threading import Lock, RLock from datetime import datetime ...
- https://github.com/golang/crypto/blob/master/bcrypt/bcrypt.go
https://github.com/golang/crypto/blob/master/bcrypt/bcrypt.go
- https://github.com/PyMySQL/PyMySQL/blob/master/pymysql/connections.py
# Python implementation of the MySQL client-server protocol # http://dev.mysql.com/doc/internals/en/ ...
- https://github.com/tensorflow/models/blob/master/research/slim/datasets/preprocess_imagenet_validation_data.py 改编版
#!/usr/bin/env python # Copyright 2016 Google Inc. All Rights Reserved. # # Licensed under the Apach ...
- 用swoole实现mysql的连接池--摘自https://github.com/153734009/doc/blob/master/php/mysql_pool.php
<?php $serv = new swoole_server("0.0.0.0", 9508); $serv->set(['worker_num'=>1 ...
- GC 的认识(转) https://github.com/qcrao/Go-Questions/blob/master/GC/GC.md#1-什么是-gc有什么作用
1. 什么是 GC,有什么作用? GC,全称 Garbage Collection,即垃圾回收,是一种自动内存管理的机制. 当程序向操作系统申请的内存不再需要时,垃圾回收主动将其回收并供其他代码进行内 ...
- 盘点 Java 开发 2020 年发生的几件大事,你必须得知道!
2021 年了,在过去的一年 Java 软件开发行业都发生了哪些重大事件呢? 这篇栈长带大家回顾一下,其实在元旦的<滚蛋吧,2020>也略有介绍,这篇就更加详细的总结一下. 1.Java ...
随机推荐
- photonServer学习之连接数据库
string connectStr = "server=127.0.0.1;port=3306;database=database;user=root;pwd=root";//连接 ...
- Springboot-Mybatis-进阶
目录 数据库关系 ResultMap association collection 动态sql if where set choose foreach 缓存 一级缓存 二级缓存 开启二级缓存 配置 异 ...
- ThreadLocal是什么?谈谈你对他的理解
1.ThreadLocal是什么 从名字我们就可以看到ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的.ThreadLocal为变 ...
- 东方通Linux应用部署手册
东方通应用部署文档 进入东方通访问地址: http://192.168.0.12:9060/console/输入用户名密码(thanos/thanos123.com)首页是对东方通软件的一些信息描 ...
- 在微信公众号"码海"里学了一招:在update语句里使用case when 以避免多次更新导致的数据异常.
需求:将emp表中工资大于一万的降到9成,工资少于一万的乘以1.2. 难点:如果分成两句update执行,在10000附近的值可能会执行两次. 钥匙:在update语句里采用case when,使更新 ...
- leetcode刷题-64最小路径和
题目 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入:[ [1,3,1], [1,5, ...
- java实现内网通信
package newTest; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; ...
- Spring框架学习笔记(1)
Spring 框架学习笔记(1) 一.简介 Rod Johnson(spring之父) Spring是分层的Java SE/EE应用 full-stack(服务端的全栈)轻量级(跟EJB比)开源框架, ...
- Navicat Premium 15.0.17 破解激活(DFoX 注册机)
Navicat Premium v15.0.17 安装程序和注册机已放入百度网盘,下载地址在本文最后 1. 下载并安装 Navicat Premium 15 在官网下载 Windows 版本的 Nav ...
- Java反射库介绍
本文主要罗列了Java反射中使用比较多的一些方法,主要都是来自 java.lang.reflect包下的Field.Method 和 Constructor 等三个类,希望对大家有帮助!! 介绍 ja ...