GitHub:再见,master!
點擊上方“朱小廝的博客”,選擇“設為星標”
后臺回復"書",獲取
GitHub宣布,自2020年10月1日起,在GitHub平臺上創建的所有源代碼存儲庫都將默認命名為 main ,而非原本的 master 。
近日,GitHub宣布,自2020年10月1日起,在GitHub平臺上創建的所有源代碼存儲庫都將默認命名為 main ,而非原本的 master 。
這一變化是什么原因?具體又是怎樣的變化呢?接下來為你一一解答。
替換 master 等術語,開源項目在行動!
今年6月12日,谷歌瀏覽器開發人員 Una Kravets 的一條 Twitter 火了,內容是建議 GitHub 用 main 之類的中性術語替換 master ,并解釋了提出這個建議的原因:
main 更短,簡潔明了;
容易被人記住;
會讓我的隊友們感到舒適;
不會讓黑人在科技界感到被歧視;
GitHub 的 CEO 對此回應到:“提議非常好,我們已經在執行了。”
外媒 ZDNet 曾表示:繼續使用帶有種族色彩的詞匯可能會加深種族歧視,這實在令人擔憂。一些學者也認為:這些術語不僅反映了種族主義文化,而且還強化、合法化和延續了它。”因為美國 “Black Lives Matter” 運動愈演愈烈,技術界再次掀起了在源碼、軟件應用開發中刪除此類詞匯的浪潮。
因此 GitHub 于今年6月表示,公司正在努力以 main 之類的中性術語替換 master 一詞,以避免不必要的聯想到奴隸制。具體的更換有:master 和 slave 將被替換為 main/default/primary 和 secondary,whitelist 和 blacklist 則將被替換為 allow list 和 deny/exclude list 。?
除了 GitHub , Android 移動操作系統、 Go 編程語言, PHPUnit 和 Curl 等都已表示打算用中性詞匯替換掉 blacklist/whitelist 。同樣,OpenZFS 文件存儲管理器也用合適的詞語替換了原用于描述存儲環境之間關系的 master/slave 術語。
與此同時,一些業界知名的開源項目也將其默認 Git 存儲庫的名稱從 master 更改為 main、default、primary、root 等替代名稱。
不過,值得注意的是,開源項目的名稱修改也并非想象中那么簡單。在今年6月,React Refresh Webpack Plugin 的開發者迅速將 master 改成 main ,卻被一個程序員吐槽:因為在 Git 上下文中,單詞 master 的用法與 master/slave 不同,導致所有程序都改變了,最后項目都崩了。
由此可見,修改存儲庫默認分支的名稱并非一朝一夕的事,需要循序漸進。這正如同近日 GitHub 官宣的內容:將從10月1日起用 main 代替 master ,但將分階段進行。
GitHub 用 main 取代 master 舉措落地,開發者最關心的事情在這里
GitHub 以及龐大的 Git 社區都在考慮重命名源代碼存儲庫的默認分支名稱,而GitHub 選擇用 main 取代 master ,來作為自己存儲庫的默認分支名稱,并將分為幾個階段進行更改,以盡可能減少對現有項目的破壞。
GitHub 建議用戶:如果您尚未重命名默認分支,可以考慮等到今年年底。我們正在投資開發工具,用來重命名現有存儲庫的默認分支,從而給維護者和貢獻者提供無縫的體驗。
以下是 GitHub 就此宣布的一些注意事項:
已更改部分
已更新 GitHub.com :將包含已刪除的分支名稱的原版鏈接重定向到存儲庫新默認分支中的相應鏈接;
已更新 GitHub Pages :可以從任何分支構建和部署;
注意:發布到特殊的 gh-pages 分支仍可以像以前一樣工作,但是現在可以選擇存儲庫中的其他任何分支作為發布源。
添加了用戶,組織和企業設置:為 GitHub.com 上所有新創建的存儲庫設置默認分支名稱。
這些設置涵蓋通過 GitHub.com 和 GitHub API 創建的存儲庫。Git 2.28 添加了類似的設置來控制在命令行上運行 git init 時使用的默認分支。在 Git 2.28 博客文章中可以了解更多有關新的 init.defaultBranch 的設置信息。
GitHub Desktop 還將在本月晚些時候為新存儲庫引入默認分支設置。
2020年10月1日:新創建的存儲庫都將默認為main
自2020年10月1日起,新創建的存儲庫都將使用 main 作為默認分支,而不是原本的 master 。但此更改不會影響任何現有存儲庫:現有存儲庫將繼續保留與之前相同的默認分支。
但此更改可以隨時選擇退出,通過以下對應網址,可為用戶,組織或企業的新存儲庫設置默認分支:
對于用戶,請訪問 https://github.com/settings/repositories
對于組織所有者,請訪問 https://github.com/organizations/YOUR-ORGANIZATION/settings/repository-defaults
對于企業管理員,請訪問 https://github.com/enterprises/YOUR-ENTERPRISE/settings/member_privileges
為什么選擇用 main 替代?
main 是在 GitHub 上看到的最受歡迎的 master 替代詞。并且 main 這個詞匯很短,可以讓用戶形成良好的肌肉記憶;在很多種語言中翻譯起來也很容易。
GitHub 目前正將 main 用于新創建的存儲庫以及正在遷移的存儲庫,例如 dependabot-core。
今年年底:無縫遷移現有存儲庫
重命名默認分支肯定會對現有存儲庫帶來很多麻煩:
打開拉請求需要重新定位到新分支
草案發布需要重新定位到新分支
分支機構保護策略需要轉移到新分支機構
今年年底之前,GitHub 將使現有存儲庫全部無縫重命名其默認分支。當重命名分支機構后,GitHub 會重新定位未完成的PR和草稿版本、移動分支機構的保護政策等等——全部都將自動執行。并且,GitHub 還正在考慮將 git fetch 或 git clone 舊分支名稱的用戶重定向到新分支名稱(帶有警告和說明以更新其本地克隆)。
對這一舉動的思考?
其實關于計算機術語的政治正確性并不是近幾年才出現的話題,GitHub 在公眾的督促下換掉 master 也不是首當其沖。
早在2004年,master/slave 就曾被全球語言檢測機構評為年度最不政治正確的十大詞匯之一,只是當時的軟件開發和網絡發展并沒有如今這么發達,所以更換術語這類事就全靠自發。比如,2008年,開源軟件 Drupal 宣布將 master/slave 重命名為 client/server ,理由是在有更好的替代方案時,繼續使用冒犯性術語很不合時宜。之后一直到2018年,IETF 在草案當中,提出開源軟件需要更改 master/slave 和 blacklist/whitelist 兩項表述,計算機術語的使用才引起了廣泛的關注。
因此同年,許多開發者就開始呼吁 Redis、谷歌、Python 這些開源軟件廠商修改相關術語。
但其實反對的聲音也一直很多。其中最重要的兩個理由是:
計算機源碼中的 master、blacklist 等詞語,并不包含種族色彩;
更改的成本太大。
事實上那些倡議者們所追求的,并非完全不能使用“black”這個詞,而是呼吁不要把“biack”作為“white”的對立面,傳達出“不好”、“需要被限制”等這些負面含義。所以,當 master/slave出現在代碼中,表達的又恰好是“主-從”關系,就難免讓人想到奴隸制。
可是,究其根本,在計算機術語中的master、blacklist等詞語,本身并不包含負面和歧視的意思,卻因為誤解而花費巨大成本修改術語,是否會有些許過猶不及的意味呢??
參考鏈接
https://baijiahao.baidu.com/s?id=1669620192902455480&wfr=spider&for=pc
https://www.sohu.com/a/405073858_478315
https://www.jiangweishan.com/article/hulianwang0234098230948.html
想知道更多?掃描下面的二維碼關注我
后臺回復"技術",加入技術群
【精彩推薦】
超清晰的DNS入門指南
如何用ELK搭建TB級的日志系統
深度好文:Linux系統內存知識
日志采集系統都用到哪些技術?
面試官:為什么HashMap的加載因子是0.75?
原創|OpenAPI標準規范
如此簡單| ES最全詳細使用教程
ClickHouse到底是什么?為什么如此牛逼!
原來ElasticSearch還可以這么理解
面試官:InnoDB中一棵B+樹可以存放多少行數據?
點個贊+在看,少個 bug?????
總結
以上是生活随笔為你收集整理的GitHub:再见,master!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试官:GET和POST两种基本请求方法
- 下一篇: 搞懂 SQL 查询优化原理分析,秒速处理