如何刪除你的 master 分支
分類

在 Selenium 專案中,我們實踐了主幹式開發,其中 trunk 是儲存庫預設 git 分支的常用名稱。然而,當專案遷移到 GitHub 時,儲存庫沿用了傳統用法,使用 master 作為預設 git 分支的名稱。
為了使 Selenium 專案成為一個更具包容性的場所,歡迎所有人加入,我們決定使用 trunk 作為預設 git 分支,並在切換後刪除 master 分支。這個變更帶來了一些挑戰。這篇部落格文章將指出一些您在 GitHub 儲存庫中想要進行相同變更時應注意的事項。
失效連結
在文件中連結程式碼的特定部分是很常見的做法,而該連結通常包含分支名稱。仔細檢查您的文件,是否有連結指向 master 分支上的檔案,因為它們在變更後可能會變成失效連結。
提及分支名稱
同樣地,分支名稱也會在儲存庫的不同部分被提及,例如程式碼註解、貢獻說明、問題和 Pull Request 範本以及讀我檔案。別忘了檢查這些地方。
GitHub 儲存庫徽章
我們都喜歡透過新增盡可能多的徽章來炫耀我們的 GitHub 儲存庫的表現。在許多情況下,這些徽章會報告建置狀態,而該狀態取決於執行建置的分支。請確保您的 Travis/CircleCI/GitHub Actions 徽章指向新的分支。
持續整合設定
開放原始碼中的良好實務是擁有持續整合設定,以執行建置、執行測試,並可能進行自動化發布。如今,CI 組態是在檔案中完成的(例如 Travis 的 .travis.yml),而該組態的一個重要部分是應執行建置的分支名稱。與前一點類似,請仔細檢查您的新分支名稱是否已在 CI 整合中正確設定。
建置腳本
在 Selenium 專案中,我們有一些自訂建置腳本,這些腳本透過持續整合設定執行。一個範例是為 Java、Ruby 和 Python 綁定產生文件的腳本。此腳本需要知道程式碼的分支名稱才能產生文件。如果您有類似用途的腳本,請在變更分支名稱後檢查它們。
開啟的 Pull Request
上述所有任務可能都可以透過文字編輯器和在儲存庫中所有檔案中進行大規模但仔細的「搜尋和取代」來完成。簡而言之,我們遵循的移至新分支 trunk 的流程是
- 建立一個名為
trunk的新分支,基於master分支。 - 執行先前各點中描述的所有項目。
- 提交並推送這些變更。
- 刪除
master分支。
然而,發生了一件我們沒有預料到的事情:在刪除 master 分支後,所有開啟的 Pull Request 都被關閉了。這是有道理的,因為它們都以 master 分支為目標。因此,在刪除您的 master 分支之前,請仔細檢查,如果需要,請編輯開啟的 Pull Request,使其以新分支為目標。

不言而喻,您的新分支名稱可以是任何適合您的環境和情境的名稱。例如,具有 Selenium 網站內容的儲存庫現在使用 dev 作為包含網站原始檔的分支,並使用 publish 作為包含已發布的產生靜態網站的分支。
這些是我們在刪除 SeleniumHQ GitHub 組織下所有主要儲存庫中的 master 分支過程中學到的經驗。如果您決定將預設分支的名稱從 master 移開,我希望這些經驗對您有所幫助。
這最初發布於 https://opensource.saucelabs.com/blog/how_to_delete_your_master_branch/




