GitHub:再見 Master !

整理:鄭麗媛?
來源:CSDN
GitHub宣布,自2020年10月1日起,在GitHub平臺上創(chuàng)建的所有源代碼存儲庫都將默認命名為 main ,而非原本的 master 。

這一變化是什么原因?具體又是怎樣的變化呢?接下來為你一一解答。
1、替換 master 等術(shù)語,開源項目在行動!
今年6月12日,谷歌瀏覽器開發(fā)人員 Una Kravets 的一條 Twitter 火了,內(nèi)容是建議 GitHub 用 main 之類的中性術(shù)語替換 master ,并解釋了提出這個建議的原因:
main 更短,簡潔明了;
容易被人記??;
會讓我的隊友們感到舒適;
不會讓黑人在科技界感到被歧視;
GitHub 的 CEO 對此回應到:“提議非常好,我們已經(jīng)在執(zhí)行了?!?/p>
外媒 ZDNet 曾表示:繼續(xù)使用帶有種族色彩的詞匯可能會加深種族歧視,這實在令人擔憂。一些學者也認為:這些術(shù)語不僅反映了種族主義文化,而且還強化、合法化和延續(xù)了它?!币驗槊绹?“Black Lives Matter” 運動愈演愈烈,技術(shù)界再次掀起了在源碼、軟件應用開發(fā)中刪除此類詞匯的浪潮。
因此 GitHub 于今年6月表示,公司正在努力以 main 之類的中性術(shù)語替換 master 一詞,以避免不必要的聯(lián)想到奴隸制。具體的更換有:master 和 slave 將被替換為 main/default/primary 和 secondary,whitelist 和 blacklist 則將被替換為 allow list 和 deny/exclude list 。
除了 GitHub , Android 移動操作系統(tǒng)、 Go 編程語言, PHPUnit 和 Curl 等都已表示打算用中性詞匯替換掉 blacklist/whitelist 。同樣,OpenZFS 文件存儲管理器也用合適的詞語替換了原用于描述存儲環(huán)境之間關(guān)系的 master/slave 術(shù)語。
與此同時,一些業(yè)界知名的開源項目也將其默認 Git 存儲庫的名稱從 master 更改為 main、default、primary、root 等替代名稱。
不過,值得注意的是,開源項目的名稱修改也并非想象中那么簡單。在今年6月,React Refresh Webpack Plugin 的開發(fā)者迅速將 master 改成 main ,卻被一個程序員吐槽:因為在 Git 上下文中,單詞 master 的用法與 master/slave 不同,導致所有程序都改變了,最后項目都崩了。
由此可見,修改存儲庫默認分支的名稱并非一朝一夕的事,需要循序漸進。這正如同近日 GitHub 官宣的內(nèi)容:將從10月1日起用 main 代替 master ,但將分階段進行。
2、GitHub 用 main 取代 master 舉措落地,開發(fā)者最關(guān)心的事情在這里
GitHub 以及龐大的 Git 社區(qū)都在考慮重命名源代碼存儲庫的默認分支名稱,而GitHub 選擇用 main 取代 master ,來作為自己存儲庫的默認分支名稱,并將分為幾個階段進行更改,以盡可能減少對現(xiàn)有項目的破壞。
GitHub 建議用戶:如果您尚未重命名默認分支,可以考慮等到今年年底。我們正在投資開發(fā)工具,用來重命名現(xiàn)有存儲庫的默認分支,從而給維護者和貢獻者提供無縫的體驗。
以下是 GitHub 就此宣布的一些注意事項:
已更改部分
已更新 GitHub.com :將包含已刪除的分支名稱的原版鏈接重定向到存儲庫新默認分支中的相應鏈接;
已更新 GitHub Pages :可以從任何分支構(gòu)建和部署;
注意:發(fā)布到特殊的 gh-pages 分支仍可以像以前一樣工作,但是現(xiàn)在可以選擇存儲庫中的其他任何分支作為發(fā)布源。
添加了用戶,組織和企業(yè)設置:為 GitHub.com 上所有新創(chuàng)建的存儲庫設置默認分支名稱。
這些設置涵蓋通過 GitHub.com 和 GitHub API 創(chuàng)建的存儲庫。Git 2.28 添加了類似的設置來控制在命令行上運行 git init 時使用的默認分支。在 Git 2.28 博客文章中可以了解更多有關(guān)新的 init.defaultBranch 的設置信息。
GitHub Desktop 還將在本月晚些時候為新存儲庫引入默認分支設置。
2020年10月1日:新創(chuàng)建的存儲庫都將默認為main
自2020年10月1日起,新創(chuàng)建的存儲庫都將使用 main 作為默認分支,而不是原本的 master 。但此更改不會影響任何現(xiàn)有存儲庫:現(xiàn)有存儲庫將繼續(xù)保留與之前相同的默認分支。
但此更改可以隨時選擇退出,通過以下對應網(wǎng)址,可為用戶,組織或企業(yè)的新存儲庫設置默認分支:
對于用戶,請訪問 https://github.com/settings/repositories
對于組織所有者,請訪問 https://github.com/organizations/YOUR-ORGANIZATION/settings/repository-defaults
對于企業(yè)管理員,請訪問 https://github.com/enterprises/YOUR-ENTERPRISE/settings/member_privileges
為什么選擇用 main 替代?
main 是在 GitHub 上看到的最受歡迎的 master 替代詞。并且 main 這個詞匯很短,可以讓用戶形成良好的肌肉記憶;在很多種語言中翻譯起來也很容易。
GitHub 目前正將 main 用于新創(chuàng)建的存儲庫以及正在遷移的存儲庫,例如 dependabot-core。
今年年底:無縫遷移現(xiàn)有存儲庫
重命名默認分支肯定會對現(xiàn)有存儲庫帶來很多麻煩:
打開拉請求需要重新定位到新分支
草案發(fā)布需要重新定位到新分支
分支機構(gòu)保護策略需要轉(zhuǎn)移到新分支機構(gòu)
今年年底之前,GitHub 將使現(xiàn)有存儲庫全部無縫重命名其默認分支。當重命名分支機構(gòu)后,GitHub 會重新定位未完成的PR和草稿版本、移動分支機構(gòu)的保護政策等等——全部都將自動執(zhí)行。并且,GitHub 還正在考慮將 git fetch 或 git clone 舊分支名稱的用戶重定向到新分支名稱(帶有警告和說明以更新其本地克?。?。
3、對這一舉動的思考
其實關(guān)于計算機術(shù)語的政治正確性并不是近幾年才出現(xiàn)的話題,GitHub 在公眾的督促下?lián)Q掉 master 也不是首當其沖。
早在2004年,master/slave 就曾被全球語言檢測機構(gòu)評為年度最不政治正確的十大詞匯之一,只是當時的軟件開發(fā)和網(wǎng)絡發(fā)展并沒有如今這么發(fā)達,所以更換術(shù)語這類事就全靠自發(fā)。
比如,2008年,開源軟件 Drupal 宣布將 master/slave 重命名為 client/server ,理由是在有更好的替代方案時,繼續(xù)使用冒犯性術(shù)語很不合時宜。之后一直到2018年,IETF 在草案當中,提出開源軟件需要更改 master/slave 和 blacklist/whitelist 兩項表述,計算機術(shù)語的使用才引起了廣泛的關(guān)注。
因此同年,許多開發(fā)者就開始呼吁 Redis、谷歌、Python 這些開源軟件廠商修改相關(guān)術(shù)語。
但其實反對的聲音也一直很多。其中最重要的兩個理由是:
計算機源碼中的 master、blacklist 等詞語,并不包含種族色彩;
更改的成本太大。
事實上那些倡議者們所追求的,并非完全不能使用“black”這個詞,而是呼吁不要把“biack”作為“white”的對立面,傳達出“不好”、“需要被限制”等這些負面含義。所以,當 master/slave出現(xiàn)在代碼中,表達的又恰好是“主-從”關(guān)系,就難免讓人想到奴隸制。
可是,究其根本,在計算機術(shù)語中的master、blacklist等詞語,本身并不包含負面和歧視的意思,卻因為誤解而花費巨大成本修改術(shù)語,是否會有些許過猶不及的意味呢?
參考鏈接
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
