

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon CodeCatalyst 中的分支組織您的原始程式碼
<a name="source-branches"></a>

在 Git 中，分支是遞交的指標或參考。在開發時，分支可讓您的組織工作更輕鬆。您可以使用分支來分隔新版本或不同版本檔案的工作，而不會影響其他分支的工作。您可以使用分支來開發新功能、存放專案的特定版本等等。您可以設定來源儲存庫中分支的規則，將分支上的特定動作限制為該專案中的特定角色。

無論您如何建立，Amazon CodeCatalyst 中的來源儲存庫都有內容和預設分支。連結的儲存庫可能沒有預設分支或內容，但在您初始化它們並建立預設分支之前，CodeCatalyst 無法使用它們。當您使用藍圖建立專案時，CodeCatalyst 會為該專案建立來源儲存庫，其中包含 README.md 檔案、範例程式碼、工作流程定義和其他資源。當您不使用藍圖建立來源儲存庫時，系統會為您新增 README.md 檔案做為第一個遞交，並為您建立*預設分支*。此預設分支名為 *main*。此預設分支是在使用者複製儲存庫時，用作本機儲存庫 （儲存庫） 中基本或預設分支的分支。

**注意**  
您無法刪除預設分支。為來源儲存庫建立的第一個分支是該儲存庫的預設分支。此外，搜尋只會顯示預設分支的結果。您無法在其他分支中搜尋程式碼。

在 CodeCatalyst 中建立儲存庫也會建立第一個遞交，這會建立包含 README.md 檔案*的預設分支*。該預設分支的名稱為*主要*分支。這是本指南範例中使用的預設分支名稱。

**Topics**
+ [建立分支](source-create-delete-branch.md)
+ [管理儲存庫的預設分支](source-branches-default-branch.md)
+ [使用分支規則管理分支的允許動作](source-branches-branch-rules.md)
+ [分支的 Git 命令](source-branches-git.md)
+ [檢視分支和詳細資訊](source-branches-view.md)
+ [刪除分支](source-branches-delete.md)

# 建立分支
<a name="source-create-delete-branch"></a>

您可以使用 CodeCatalyst 主控台在 CodeCatalyst 儲存庫中建立分支。您建立的分支會在其他使用者下次從儲存庫提取變更時顯示。

**提示**  
您也可以建立分支，做為建立開發環境以處理程式碼的一部分。如需詳細資訊，請參閱[建立開發環境](devenvironment-create.md)。

您也可以使用 Git 來建立分支。如需詳細資訊，請參閱[分支的常見 Git 命令](source-branches-git.md#source-branches-git-table)。

**建立分支 （主控台）**

1. 在 CodeCatalyst 主控台中，導覽至來源儲存庫所在的專案。

1. 從專案的來源儲存庫清單中選擇儲存庫的名稱。或者，在導覽窗格中，選擇**程式碼**，然後選擇**來源儲存庫**。

1. 選擇您要建立分支的儲存庫。

1. 在儲存庫的概觀頁面上，選擇**更多**，然後選擇**建立分支**。

1. 輸入分支的名稱。

1. 選擇要從中建立分支的分支，然後選擇**建立**。

# 管理儲存庫的預設分支
<a name="source-branches-default-branch"></a>

您可以指定要使用哪個分支做為 Amazon CodeCatalyst 中來源儲存庫*的預設分支*。CodeCatalyst 中的所有來源儲存庫都有內容和預設分支，無論您如何建立它們。如果您使用藍圖來建立專案，則為該專案建立的來源儲存庫中的預設分支會命名為*主要*分支。預設分支的內容會自動顯示在該儲存庫的概觀頁面上。

**重要**  
CodeCatalyst 不支援偵測連結儲存庫的預設分支中的變更。若要變更連結儲存庫的預設分支，您必須先將其從 CodeCatalyst 取消連結、變更預設分支，然後再次連結。如需詳細資訊，請參閱[在 CodeCatalyst 中連結 GitHub 儲存庫、Bitbucket 儲存庫、GitLab 專案儲存庫和 Jira 專案](extensions-link.md)。  
最佳實務是，在連結儲存庫之前，請務必確保您擁有最新版本的擴充功能。

預設分支的處理方式與來源儲存庫中的所有其他分支略有不同。其名稱 **Default** 旁有一個特殊標籤。當使用者使用 Git 用戶端將儲存庫複製到本機電腦時，預設分支是做為本機儲存庫 （儲存庫） 中基本或預設分支的分支。它也是建立工作流程以存放工作流程 YAML 檔案，以及存放問題資訊的預設值。在 CodeCatalyst 中使用搜尋時，只會搜尋儲存庫的預設分支。由於預設分支對專案的許多層面至關重要，因此如果將分支指定為預設分支，則無法刪除分支。不過，您可以選擇使用不同的分支做為預設分支。如果您這麼做，任何套用至先前預設分支的[分支規則](source-branches-branch-rules.md)都會自動套用至您指定為預設分支的分支。

**注意**  
您必須擁有專案管理員角色，才能變更 CodeCatalyst 專案中來源儲存庫的預設分支。這不適用於連結的儲存庫。

**檢視和變更儲存庫的預設分支**

1. 導覽至儲存庫所在的專案。

1. 從專案的來源儲存庫清單中選擇儲存庫的名稱。或者，在導覽窗格中，選擇**程式碼**，然後選擇**來源儲存庫**。

   選擇您要檢視設定的儲存庫，包括預設分支。

1. 在儲存庫的概觀頁面上，選擇**更多**，然後選擇**管理設定**。

1. 在**預設分支**中，指定為預設分支的分支名稱會與名稱旁的名為**預設**的標籤一起顯示。這個相同的標籤會出現在分支中分支清單中**的分支**名稱旁。

1. 若要變更預設分支，請選擇**編輯**。
**注意**  
您必須在專案中具有專案管理員角色，才能變更預設分支。

1. 從下拉式清單中選擇您要建立預設分支的分支名稱，然後選擇**儲存**。

# 使用分支規則管理分支的允許動作
<a name="source-branches-branch-rules"></a>

當您建立分支時，根據該角色的許可，該分支允許特定動作。您可以設定分支規則來變更特定分支允許的動作。分支規則是根據使用者在專案中的角色。您可以選擇將一些預先定義的動作限制在專案中具有特定角色的使用者，例如將遞交推送至分支。這可以透過限制允許哪些角色執行特定動作，協助您保護專案中的特定分支。例如，如果您設定分支規則只允許具有**專案管理員**角色的使用者合併或推送至該分支，則具有專案中其他角色的使用者將無法變更該分支中的程式碼。

您應該仔細考慮為分支建立規則的所有影響。例如，如果您選擇限制向具有**專案管理員**角色的使用者推送分支，則具有 **Contributor **角色的使用者將無法在該分支中建立或編輯工作流程，因為工作流程 YAML 存放在該分支中，而且這些使用者無法遞交變更並將其推送至 YAML。作為最佳實務，請在建立分支規則之後對其進行測試，以確保它們不會對您不打算產生任何影響。您也可以使用分支規則搭配提取請求的核准規則。如需詳細資訊，請參閱[管理將提取請求與核准規則合併的要求](source-pull-requests-approval-rules.md)。

**注意**  
您必須擁有專案管理員角色，才能管理 CodeCatalyst 專案中來源儲存庫的分支規則。您無法為連結的儲存庫建立分支規則。  
您只能建立比角色預設許可更嚴格的分支規則。您無法建立比專案中使用者角色允許的更寬鬆的分支規則。例如，您無法建立允許具有 Reviewer 角色的使用者推送至分支的分支規則。

套用至來源儲存庫預設分支的分支規則的行為將與其他套用至其他分支的分支規則略有不同。套用至預設分支的任何規則都會自動套用至您指定為預設分支的任何分支。先前設定為預設分支的分支仍會保留套用至它的規則，但不再具有刪除保護。該保護僅適用於目前的預設分支。

分支規則有兩個狀態：**標準**和**自訂**。**標準**表示分支上允許的動作，是符合使用者在 CodeCatalyst 中具有的分支動作角色許可的動作。若要進一步了解哪些角色具有哪些許可，請參閱 [使用使用者角色授予存取權](ipa-roles.md)。**自訂**表示一或多個分支動作具有的動作具有特定的角色清單，允許執行該動作，該動作不同於專案中使用者角色授予的預設許可。

**注意**  
如果您建立分支規則來限制分支的一或多個動作，**則刪除分支**動作會自動設定為僅允許具有專案管理員角色的使用者刪除該分支。

下表列出允許在分支上執行這些動作之角色的動作和預設設定。


**分支動作和角色**  

| **分支動作** |  允許在未套用分支規則時執行此動作的角色  | 
| --- | --- | 
|  合併至分支 （包括合併提取請求至分支）  |  專案管理員，貢獻者  | 
|  推送至分支  |  專案管理員，貢獻者  | 
|  刪除分支  |  專案管理員，貢獻者  | 
|  刪除分支 （預設分支）  |  不允許  | 

 您無法刪除分支規則，但您可以更新這些規則，以允許來自允許在分支上執行此動作之所有角色的動作，這會有效地移除規則。

**注意**  
您必須擁有專案管理員角色，才能為 CodeCatalyst 專案中的來源儲存庫設定分支規則。這不適用於連結的儲存庫。連結的儲存庫不支援 CodeCatalyst 中的分支規則。<a name="view-edit-branch-rules"></a>

**檢視和編輯儲存庫的分支規則**

1. 導覽至儲存庫所在的專案。

1. 從專案的來源儲存庫清單中選擇儲存庫的名稱。或者，在導覽窗格中，選擇**程式碼**，然後選擇**來源儲存庫**。

   選擇您要檢視分支規則的儲存庫。

1. 在儲存庫的概觀頁面上，選擇**分支**。

1. 在**分支規則**欄中，檢視儲存庫每個分支的規則狀態。**標準**表示分支動作的規則是來源儲存庫中建立的任何分支的預設規則，並符合專案中授予這些角色的許可。**自訂**表示一或多個分支動作具有將該分支允許的一或多個動作限制為不同角色集的規則。

   若要檢視分支規則的詳細資訊，請選擇您要檢閱之分支旁的**標準**或**自訂**一詞。

1. 若要建立或變更分支規則，請選擇**管理設定**。在來源儲存庫的設定頁面上的**分支規則**中，選擇**編輯**。

1. 在**分支**中，從下拉式清單中選擇您要為其設定規則的分支名稱。對於每個允許的動作類型，從下拉式清單中選擇您要允許 執行該動作的角色，然後選擇**儲存**。

# 分支的 Git 命令
<a name="source-branches-git"></a>

您可以使用 Git 在電腦 （本機儲存庫） 或開發環境中的來源儲存庫複製中建立、管理和刪除分支，然後將變更遞交並推送至 CodeCatalyst 來源儲存庫 （遠端儲存庫）。例如：


**分支的常見 Git 命令**  

|  |  | 
| --- |--- |
|  列出本機儲存庫中的所有分支，並在您目前的分支旁顯示星號 (`*`)。  |  `git branch`  | 
|  將遠端儲存庫中所有現有分支的相關資訊提取至本機儲存庫。  |  `git fetch`  | 
|  列出本機儲存庫中的所有分支，以及本機儲存庫中的遠端追蹤分支。  |  `git branch -a`  | 
|  僅列出本機儲存庫中的遠端追蹤分支。  |  `git branch -r`  | 
|  使用指定的分支名稱在本機儲存庫中建立分支。在您遞交並推送變更之前，此分支不會出現在遠端儲存庫中。  |  `git branch branch-name`  | 
|  使用指定的分支名稱在本機儲存庫中建立分支，然後切換到該分支。  |  `git checkout -b branch-name`  | 
|  使用指定的分支名稱切換到本機儲存庫中的另一個分支。  |  `git checkout other-branch-name`  | 
|  使用本機儲存庫指定的遠端儲存庫別名和指定的分支名稱，將分支從本機儲存庫推送至遠端儲存庫。同時在本機儲存庫中設定分支的上游追蹤資訊。  |  `git push -u remote-name branch-name`  | 
|  將變更從本機儲存庫中的另一個分支合併到本機儲存庫中的目前分支。  |  `git merge from-other-branch-name`  | 
|  刪除本機儲存庫中的分支，除非其包含尚未合併的工作。  |  `git branch -d branch-name`  | 
|  使用本機儲存庫為遠端儲存庫指定的別名和指定的分支名稱，刪除遠端儲存庫中的分支。(注意冒號 (`:`) 的使用方式。) 或者，指定 `--delete`做為 命令的一部分。  | `git push remote-name :branch-name` `git push remote-name --delete branch-name`  | 

如需詳細資訊，請參閱 Git 文件。

# 檢視分支和詳細資訊
<a name="source-branches-view"></a>

您可以在 Amazon CodeCatalyst 主控台中檢視 Amazon CodeCatalyst 中遠端分支的相關資訊，包括特定分支的檔案、資料夾和最新遞交的詳細資訊。您也可以使用 Git 命令和本機作業系統來檢視遠端和本機分支的此資訊。<a name="source-branches-view-console"></a>

**檢視分支 （主控台）**

1. 在 CodeCatalyst 主控台中，導覽至包含您要檢視分支之來源儲存庫的專案。選擇**程式碼**，選擇**來源儲存庫**，然後選擇來源儲存庫。

1. 從專案的來源儲存庫清單中選擇儲存庫的名稱。或者，在導覽窗格中，選擇**程式碼**，然後選擇**來源儲存庫**。

   選擇您要檢視分支的儲存庫。

1. 儲存庫的預設分支隨即顯示。您可以查看分支中的檔案和資料夾清單、最新遞交的相關資訊，以及分支中存在的 README.md 檔案內容。若要檢視不同分支的資訊，請從儲存庫的分支下拉式清單中進行選擇。

1. 若要檢視儲存庫的所有分支，請選擇**檢視全部**。分支頁面會顯示每個分支的名稱、最新遞交和規則的相關資訊。

如需有關如何使用 Git 和您的作業系統來檢視分支和詳細資訊的資訊，請參閱[分支的通用 Git 命令](source-branches-git.md#source-branches-git-table)、您的 Git 文件和您的作業系統文件。

# 刪除分支
<a name="source-branches-delete"></a>

您可以刪除不再需要的分支。例如，如果您已將具有功能變更的分支合併為預設分支，且該功能已釋出，則您可能想要刪除原始功能分支，因為變更已經是預設分支的一部分。保持較低的分支數量有助於使用者尋找包含他們想要處理之變更的分支。當您刪除分支時，該分支的複本會保留在本機電腦上儲存庫的複製中，直到使用者提取並同步這些變更為止。<a name="source-branch-delete"></a>

**刪除分支 （主控台）**

1. 導覽至儲存庫所在的專案。

1. 從專案的來源儲存庫清單中選擇儲存庫的名稱。或者，在導覽窗格中，選擇**程式碼**，然後選擇**來源儲存庫**。

   選擇您要刪除分支的儲存庫。

1. 在儲存庫的概觀頁面上，選擇分支名稱旁的下拉式選單，然後選擇**檢視全部**。

1. 選擇您要刪除的分支，然後選擇**刪除分支**。
**注意**  
您無法刪除儲存庫的預設分支。

1. 出現確認對話方塊。它會顯示儲存庫、開啟的提取請求數目，以及與分支相關聯的工作流程數目。

1. 若要確認刪除分支，請在文字方塊中輸入 **delete**，然後選擇 **Delete**。

您也可以使用 Git 刪除分支。如需詳細資訊，請參閱[分支的常見 Git 命令](source-branches-git.md#source-branches-git-table)。