最近真的是活久见了...不知道你是否也有碰到之前Fork过的国外开源项目,最近突然崩了,原因居然是好多项目都把master分支改为了main分支!更可怕的是修改原因居然是涉及种族歧视。用了那么多年的master,居然是种族歧视?到底发生了什么?

运动的发起

这次的 mastermain 的倡导运动发起自知名技术博主 Scott Hanselman。6月8日 Scott 发文呼吁将你的Git默认分支从master修改为main

Scott认为:IETF中所指出的Master-Slave是具有不恰当的隐喻,不论从技术上还是历史上,这个描述都不够准确,所以他希望可以修改关于主分支的描述词为 main,同时还给出了详细的修改方法。

更多详细倡导内容可见 Scott 的原文:https://www.hanselman.com/blog/EasilyRenameYourGitDefaultBranchFromMasterToMain.aspx

随后,各路业内网友也加入支持:

Chrome的开发者 Una Kravets表示,原因是:main更简单、更容易记住、如果队友觉得舒服就改吧、如果让黑人朋友好受那更好!

Una Kravets的这一条twitter同时还@了github的CEO,希望能够支持这一举动。

随即,Github CEO Nat Friedman在 twitter 上回应:这是一个好主意,我们已经正在做了!

这意味着啥?目前庞大的开源项目库都要把 master 改为 main 了吗?

反对的声音

如果只是平时用此更改一个词汇没有多大问题,但是对于已经运行这么多年的开源项目,面对 master 改 main 的运动,还是会收到一些影响,尤其是一些基础层面的开源项目,由于这些项目有非常多的子孙项目,一个祖先项目的修改,将会牵连非常多。就技术人层面而言,这种情况通常是不希望看到的,因此很多国外技术人对此表示反对。

比如跟我们一样突然被改名搞崩的国外友人:

imbaniac 表示:

  1. Git 中的 master 与 Master / Slave完全没有关系,我们从来没见过Slave分支!
  2. 对于这样的修改是否有考虑过,现存项目、书籍、教程等内容都需要修改所付出的代价?

imbaniac 甚至顺便吐槽了一下:幸亏没有得到 Master 学位 (潜台词:是不是也要改?还是被剥夺?)

后面跟帖的支持者大多也都表示这里的master完全没关系,甚至还出现了中文语境的例子...这是要上天啊,反正小编给他点赞了!

Master 的鼻祖

对于这次Git分支更名事件针对默认分支:master,那么 master 是谁起的呢?如果你用过 Git,应该马上就想起了技术大神也是互联网巨炮手:Linus。

前不久,Linus 刚刚怒怼了 Intel CPU 的漏洞补丁,对于此次的 Git 默认分支命名之争,不知道会报如何想法呢,期望大神的发声!

对于这件 Git 默认分支命名的修改,您是否支持呢?欢迎参与投票、留言说说你的想法,留言区见!

用了那么多年的 Master 分支或因种族歧视而成为历史?的更多相关文章

  1. 准备上线,切换到master分支,报错

    切换到master分支,准备上线,把上次上线sourceTree保存的修改拉出来: 运行,报错了: stackOverflow一搜说要删除旧的: 我show in finder 把他删了,然后双击安装 ...

  2. merge 本地 master 分支代码提示 “Already up-to-date”

    在使用 git 的过程中由于误操作,导致从本地 master 分支 merge 代码到当前分支失败,虽然当前分支和 master 分支代码不同步,但是仍然提示 Already up-to-date. ...

  3. VS2013中使用git发布解决方案master分支的时候出现错误

    VS2013GIT基础用法请自行参考:不会Git命令,照样玩转Git 环境:VS2013+ 码云错误描述:在VS2013中使用git发布解决方案master分支的时候出现“无法将本地分支 master ...

  4. git 创建远程分支和删除 master 分支

    . . . . . 最近需要将不同的客户的代码分开管理,所以需要为这些代码分别创建分支. 目前版本库中分支结构如下: [yuhuashi@local:Project]$ git branch -a* ...

  5. 合并master分支到自己的分支

    切换到自己的分支(比如:self):git checkout self: 在自己分支下,推送自己的分支到github远端仓库:git push --set-upstream origin self: ...

  6. ThinkSNS+ 基于 Laravel master 分支,从 1 到 0,再到 0.1

    什么是 ThinkSNS+ 09 年,由北京的团队开发了 ThinkSNS 涉足社交开源行业.这么多年累计不少客户.2014-2016,两年都在维护和开发之前基于 TP 的 ThinkSNS , 慢慢 ...

  7. centos下安装最新版本git(通过master分支下载最新版)

    centos6.7下安装最新版本git 本文参考:http://www.01happy.com/centos-install-latest-git/ 按照原博主所提供的思路安装可能会出现下列问题 解决 ...

  8. Git 如何 clone 非 master 分支的代码

    问题描述 我们每次使用命令 git clone git@gitlab.xxx.com:xxxxx.git 默认 clone 的是这个仓库的 master 分支.如果最新的代码不在 master 分支上 ...

  9. 使用其他分支替换master分支

    在提交混乱的时候, 导致master分支和远程仓库完全一致的时候,这时候解决这种问题可以创建一个新的分支, 再合并到master分支, 像这样: git checkout seotweaks git ...

随机推荐

  1. liunx tar 详解

     tar [-cxtzjvfpPN] 文件与目录 .... 参数说明 -c: 建立一个压缩文件的指令参数 (crate的缩写): -x:解开一个压缩文件的参数指令: -t:查看tarfile里面的文件 ...

  2. 百万年薪架构师一文整理RabbitMQ、ActiveMQ、RocketMQ、Kafka

    一般来说,大型应用通常会被拆分成多个子系统,这些子系统可能会部署在多台机器上,也可能只是一台机器的多个进程中,这样的应用就是分布式应用.在讨论分布式应用时,很多初学者会把它和集群这个概念搞混,因为从部 ...

  3. MySQL select from join on where group by having order by limit 执行顺序

    书写顺序:select [查询列表] from [表] [连接类型] join [表2] on [连接条件] where [筛选条件] group by [分组列表] having [分组后的筛选条件 ...

  4. 09 . Python3之常用模块

    模块的定义与分类 模块是什么? 一个函数封装一个功能,你使用的软件可能就是由n多个函数组成的(先备考虑面向对象).比如抖音这个软件,不可能将所有程序都写入一个文件,所以咱们应该将文件划分,这样其组织结 ...

  5. 50个SQL语句(MySQL版) 问题十三

    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...

  6. Rocket - jtag - JtagStateMachine

    https://mp.weixin.qq.com/s/cFXVOBHayV2w27jpT5RglA 简单介绍JtagStateMachine的实现. 1. 简单介绍 根据IEEE 1149.1-200 ...

  7. 一:HTTP协议解析

    一:HTTP协议解析 1.HTTP协议即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,他是万维网交换信息的基础,它允许将HTML(超文本标记语言)文档从web服务器传送到we ...

  8. 【HBase】知识小结+HMaster选举、故障恢复、读写流程

    1:什么是HBase HBase是一个高可靠性,高性能,面向列,可伸缩的分布式数据库,提供海量数据存储功能,一个结构化的分布式存储系统,不同于一般的关系型数据库,它适合半结构化和非结构化数据存储. 2 ...

  9. java实现纵横火柴棋

    [编程题] 这是一个纵横火柴棒游戏.如图[1.jpg],在一个3x4的方格中,游戏的双方轮流放置火柴棒.其规则是: 1. 不能放置在已经放置火柴棒的地方(即只能在空格中放置). 2. 火柴棒的方向只能 ...

  10. Java实现One-way traffic(单向交通)

    One-way traffic In a certain town there are n intersections connected by two- and one-way streets. T ...