測試發佈 12 月 16 日
使用分支隔離開發工作,而不會影響存放庫中的其他分支。 每個存放庫都有一個預設分支,而且可以有多個其他分支。 您可以使用提取要求將分支合併到另一個分支。
|
本文內容 |
|
|---|---|
關於分支
分支可讓您開發功能、修正錯誤,或安全地在存放庫的包含區域中嘗試新的想法。
您一律會從現有的分支建立分支。 一般情況下,您可能會從存放庫的預設分支建立新的分支。 接著,您可以隔離這個新分支,與其他人對存放庫所做的變更隔開。 您為建立功能所建立的分支通常稱為功能分支或主題分支。 如需詳細資訊,請參閱。
您也可以使用分支發佈 GitHub 頁面網站。 For more information, see "About GitHub Pages."
您必須具備存放庫的寫入存取權,才能建立分支、開啟提取要求,或刪除及還原提取要求中的分支。 如需詳細資訊,請參閱「GitHub 上的存取許可權」。
關於預設分支
當您在 GitHub 上建立含有內容的存放庫時,GitHub 會使用單一分支建立存放庫。 存放庫中的第一個分支是預設分支。 默認分支是當任何人造訪您的存放庫時,GitHub 會顯示的分支。 默認分支也是 Git 在有人複製存放庫時會在本機取出的初始分支。 除非您指定不同的分支,否則存放庫中的預設分支是新的提取要求和認可程序代碼的基本分支。
根據預設,GitHub 會命名任何新存放庫中的預設分支主。
您可以變更現有存放庫的預設分支。 如需詳細資訊,請參閱「變更預設分支」。
您可以設定新存放庫的預設分支名稱。 如需詳細資訊,請參閱「管理存放庫的預設分支」、「管理貴組織存放庫的預設分支名稱」和「在您的企業帳戶中強制執行存放庫管理原則」。
使用分支
當您對工作感到滿意之後,您可以開啟拉動要求,將目前分支中的變更 (分支) 合併到基礎分支) (另一個分支。 如需詳細資訊,請參閱「關於提取要求。"
合併或關閉提取要求之後,您可以刪除標題分支,因為這樣就不再需要了。 您必須在存放庫中擁有寫入存取權,才能刪除分支。 您無法刪除與開啟提取要求直接關聯的分支。 如需詳細資訊,請參閱「在提取要求中刪除及還原分支」
如果您在合併其提取要求后刪除分支,GitHub 會檢查同一存放庫中是否有任何開啟提取要求,將刪除的分支指定為其基本分支。 GitHub 會自動更新任何這類提取要求,將其基本分支變更為合併的提取要求基底分支。 下圖說明這一點。
這裡有人從主要分支建立了名為 Feature1 的分支,而您接著從 feature1 建立了一個名為 Feature2 的分支。 這兩個分支都有開放提取要求。 箭號表示每個提取要求的目前基底分支。 此時,Feature1 是feature2的基礎分支。 如果功能2的提取要求現在已合併,feature2 分支將會合併到feature1。
在下一個圖表中,有人將feature1的提取要求合併到主分支,並刪除了feature1分支。 因此,GitHub 會自動重新設定 feature2 的提取要求,使其基礎分支現在成為主控。
現在當您合併 feature2 提取要求時,它將會合併到主要分支。
使用受保護的分支
存放庫系統管理員可以啟用分支的保護。 如果您正在處理受保護的分支,您將無法刪除或強制推送至分支。 存放庫系統管理員可以額外啟用數個其他受保護的分支設定,以強制執行各種工作流程,然後才能合併分支。
附註: 如果您是存放庫系統管理員,即使提取要求不符合需求,您仍可在分支上合併拉動要求並啟用分支保護,除非分支保護已設定為「包括系統管理員」。
若要查看您的提取要求是否可以合併,請查看拉動要求Conversation 索引卷標底部的 [合併] 方塊。 如需詳細資訊,請參閱「關於受保護的分支」。
當分支受到保護時:
-
您將無法刪除或強制推送到分支。
-
如果分支已啟用必要的狀態檢查,您將無法將變更合併到分支,直到所有必要的 CI 測試通過為止。 如需詳細資訊,請參閱「關於狀態檢查」。
-
如果分支已啟用必要的提取要求檢閱,在符合提取要求檢閱原則中的所有需求之前,您將無法將變更合併到分支。 如需詳細資訊,請參閱「合併提取要求」。
-
如果分支上已啟用程式代碼擁有者要求的檢閱,且提取要求修改了擁有者所在的程式代碼,則程式代碼擁有者必須先核准提取要求,才能進行合併。 如需詳細資訊,請參閱。
-
如果在分支上啟用必要認可簽署,您將無法將任何認可推送到未簽署及驗證的分支。 如需詳細資訊,請參閱「關於認可簽章驗證」和「關於受保護的分支」。
-
如果您使用 GitHub 的衝突編輯器來修正您從受保護的分支所建立之提取要求的衝突,GitHub 可協助您為提取要求建立替代分支,以便合併衝突的解決方式。 For more information, see "Resolving a merge conflict on GitHub."
進一步閱讀
「關於提取要求」
GitHub 詞彙中的 “Branch”
Git 檔中的「子母體中的分支」