10月份開始GitHub把master換成main:這是開發(fā)者需要知道的幾點
譯文【51CTO.com快譯】另一項服務正從其技術剔除引起分歧的“master”術語。這回主角是GitHub,新的術語將由“master”改為“main”。這一變化的原因應該很明顯,但此舉是為了使這家公司擺脫任何提及奴隸制的印象,換成不會有誤解的包容性術語。
技術界早該進行這種變化了,但至少終于有了實際行動。從2020年10月1日開始,所有“master分支”一律改名為“main分支”。
對于接觸Git和GitHub已有多年的開發(fā)者來說,這個變化將需要一段時間來適應。即使您知道變化是正確的做法,多年來手指還是習慣輸入git checkout master。現(xiàn)在,您要改為git checkout main。
我預計其他許多技術會仿而效之,所以開發(fā)者很可能會在某個時候對他們使用的許多工具進行類似的改變。但是GitHub不同。GitHub被數(shù)百萬開發(fā)者使用,其中一些人單槍匹馬,但許多人一起工作。這意味著變化將是全球性的、涵蓋整個項目的。
開發(fā)者需要對GitHub的這一變化知道什么?
除了術語上的變化外,這還會如何直接影響您?不妨看一下。
首先,GitHub已經(jīng)進行了以下變化:
- 含有已刪除的分支名稱“master”的GitHub.com鏈接已經(jīng)重定向至“main”。
- GitHub頁面已更新,可以從任何分支加以部署。
- GitHub添加了用戶、組織和企業(yè)設置,以便開發(fā)者可以為所有新創(chuàng)建的存儲庫設置默認分支名稱。
2020年10月1日,新創(chuàng)建的存儲庫將默認為“main”?,F(xiàn)有存儲庫會有與目前同樣的默認分支,這一變化不會影響現(xiàn)有的存儲庫。用戶、組織和企業(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
到今年年底,所有現(xiàn)有存儲庫都將換成新的命名約定。這帶來了一系列特殊的挑戰(zhàn),包括:
- 打開的合并請求定向到新命名的分支;
- 草稿版本必須定向到新命名的分支;以及
- 分支保護策略必須轉移到新命名的分支。
GitHub的目的是確保到今年年底,所有存儲庫能夠無縫地重命名默認分支。這意味著當您重命名分支時,GitHub將自動重定向打開的合并請求和草稿版本,并遷移分支保護策略。GitHub還希望能夠重定向使用git fetch或git clone的用戶,將舊的分支名稱改為新的分支名稱。
您可能認為所有這些變化應該輕而易舉,但是鑒于GitHub有4000多萬用戶、1億多個存儲庫以及至少2800萬個公共存儲庫,這是項艱巨的任務。一個規(guī)劃不當?shù)呐e動會導致Linux內(nèi)核之類的項目發(fā)覺其代碼無法訪問。鑒于全球大批企業(yè)依賴Linux內(nèi)核,因此這類事件可能是災難性的,因此GitHub做好這項工作至關重要。
如何將GitHub項目的默認分支從master遷移到main?
在GitHub做份內(nèi)事的同時,您可以采取的最重要步驟是將您所有項目的默認分支由“master”遷移到“main”。不然,您將依賴GitHub創(chuàng)建的工具來自動完成這項工作。我會很籠統(tǒng)地介紹要采取的步驟。
在執(zhí)行任何操作之前,備份您的所有工作——您不希望因分支重命名而丟失數(shù)據(jù)。
使用以下命令將master分支移到main:
- git branch -m master main
使用以下命令將新命名的main分支推送到GitHub(假設這是您的遠程存儲庫):
- git push -u origin main
使用以下命令將HEAD指向main:
- git symbolic-ref refs / remotes / origin / HEAD refs / remotes / origin / main
現(xiàn)在,您需要將“main”設置為GitHub上您項目的默認分支。為此,登錄進入到您的GitHub帳戶,打開項目的存儲庫,點擊“設置” |“分支”。在左側邊欄中,點擊“分支”,然后從下拉列表中選擇“Main”作為默認值。點擊“更新”,出現(xiàn)提示后,點擊“我了解”?,F(xiàn)在,回到終端,執(zhí)行以下命令:
- git push origin --delete master
這應該就可以了。
引起分歧的技術術語方面有更多工作要做
我希望技術界能效仿GitHub,刪除所有引起分歧的術語。Go以及谷歌的Android和Chrome等項目已經(jīng)在努力進行這種改變。雖然Kubernetes使用“node”和“replicas”之類的術語,但截至2020年6月,仍有200多行Kubernetes代碼引用了“slave”。
這方面有很多工作要做,但是技術很靈活,負責開發(fā)技術的人高瞻遠矚。只要集體推動,就可以從整個生態(tài)圈剔除引起分歧的術語。
原文標題:GitHub to replace master with main starting in October: What developers need to do now,作者:Jack Wallen
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】