# 在 GitHub Desktop 中管理分支

可以使用 GitHub Desktop 从存储库中的现有分支创建新分支，以便安全地试验更改。

## 关于管理分支

您可以使用分支安全地试验对项目的更改。 分支可将您的开发工作与仓库中的其他分支隔开。 例如，您可以使用分支来开发新功能或修复漏洞。

始终从现有分支创建新分支。 通常，您可能会从仓库的默认分支创建分支。 然后，您可以单独处理这个新分支，不受其他人对仓库所做更改的影响。

您还可以从分支历史记录中的上一个提交开始创建分支。 如果您需要返回到仓库的早期版本以调查错误，或在最新发布版本上创建热补丁，这会很有帮助。

对您的工作满意后，您可以创建拉取请求，以将当前分支中的更改合并到另一个分支。 有关详细信息，请参阅 [从 GitHub Desktop 创建问题或提交请求](/zh/desktop/working-with-your-remote-repository-on-github-or-github-enterprise/creating-an-issue-or-pull-request-from-github-desktop) 和 [拉取请求](/zh/enterprise-server@3.22/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)。

如果您对仓库具有读取权限，可随时在 GitHub Desktop 中创建分支， 但如果您对仓库具有写入权限，则只能将分支推送到 GitHub。

仓库管理员可对分支启用保护。 如果您处理的是受保护分支，将无法删除或强制推送到该分支。 在分支可以合并之前，仓库管理员可以另外启用其他受保护分支设置来实施特定的工作流程。 有关详细信息，请参阅“[关于受保护分支](/zh/enterprise-server@3.22/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches)”。

存储库管理员还可以启用规则集。 规则集可用于在创建新分支时要求特定的分支名称，或者仅允许具有旁路权限的用户将新分支发布到远程存储库。 如果分支不遵循规则集，GitHub Desktop 会显示警告并阻止创建分支。 有关详细信息，请参阅“[关于规则集](/zh/enterprise-cloud@latest/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets)”。

## 创建分支

> \[!TIP]
> 创建的第一个新分支将基于默认分支。 如果有多个分支，您可以选择新分支是基于当前检出的分支还是默认分支。

1. 在应用顶部，单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-branch" aria-label="git-branch" role="img"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg> Current Branch”，然后在分支列表中单击要用作新分支基础的分支\*\*\*\*。

   ![“Current Branch”下拉列表视图的屏幕截图。 在“最近使用的分支”下，名为“my-feature”的分支以橙色轮廓突出显示。](/assets/images/help/desktop/select-branch-from-dropdown.png)

2. 单击“新建分支”。

   ![“当前分支”下拉列表视图的屏幕截图。 在“筛选器”字段旁边，一个标记为“新建分支”的按钮以橙色框出。](/assets/images/help/desktop/new-branch-button-mac.png)

3. 在“创建分支”窗口的“名称”下，键入新分支的名称。1. 在“基于以下内容创建分支...”下，为新分支选择一个基础分支。1. 单击“创建分支”。

## 从以前的提交创建分支

1. 在左边栏中，单击“历史记录”。

   ![边栏中“历史记录”选项卡的屏幕截图。 在提交列表上方，标有“历史记录”的选项卡按钮以橙色轮廓突出显示。](/assets/images/help/desktop/history-tab-in-commit-sidebar.png)

2. 右键单击要从中创建新分支的提交，并选择“从提交创建分支”。

   ![“历史记录”选项卡中提交列表的屏幕截图。在提交旁边的上下文菜单中，光标悬停在“从提交创建分支”选项上。](/assets/images/help/desktop/create-branch-from-commit-context-menu.png)

3. 在“创建分支”窗口的“名称”下，键入新分支的名称。1. 单击“创建分支”。

## 发布分支

如果在 GitHub Desktop 中创建了一个分支，则需要发布该分支，以便在 GitHub 上进行协作。

1. 在储存库栏中，点击 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-branch" aria-label="git-branch" role="img"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg>当前分支**，然后点击您要发布的分支。

![“当前分支”下拉菜单视图的屏幕截图。 在“最近使用的分支”下，名为“my-feature”的分支以橙色轮廓突出显示。](/assets/images/help/desktop/select-branch-from-dropdown.png)

1. 单击“发布分支”按钮。

![存储库栏的屏幕截图。 在右侧，标有“发布分支”的按钮以橙色边框突出显示。](/assets/images/help/desktop/publish-branch-button.png)

## 在分支间切换

您可以查看并提交到任何仓库的分支。 如有未提交但已保存的更改，您需要决定如何处理更改，然后才可切换分支。 您可以在当前分支上提交更改、隐藏更改以临时将它们保存在当前分支上，或者将更改传送到新分支。 如果要在切换分支之前提交更改，请参阅“[在 GitHub Desktop 中提交并审查对项目的更改](/zh/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop)”。

> \[!TIP]
> 可以在“提示”设置中设定切换分支的默认行为\*\*\*\*。 有关详细信息，请参阅“[在 GitHub Desktop 中配置基本设置](/zh/desktop/configuring-and-customizing-github-desktop/configuring-basic-settings-in-github-desktop)”。

1. 在仓库栏中，单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-branch" aria-label="git-branch" role="img"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg>“Current Branch”，然后单击要切换到的分支\*\*\*\*。

![“当前分支”下拉菜单视图的屏幕截图。 在“最近的分支”下，名为“my-feature”的分支以橙色轮廓突出显示。](/assets/images/help/desktop/select-branch-from-dropdown.png)

1. 如果您有已保存但未提交的更改，请在“切换分支”窗口中选择“保持我的更改在 CURRENT-BRANCH”或“将我的更改带到 NEW-BRANCH”，然后点击“切换分支”。

## 删除分支

无法删除目前与打开的拉取请求关联的分支。 您不能撤消对分支的删除。

<div class="ghd-tool mac">

1. 在存储库栏，单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-branch" aria-label="git-branch" role="img"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg> Current Branch”，然后单击要删除的分支\*\*\*\*。
   ![“Current Branch”下拉列表视图的屏幕截图。 在“最近使用的分支”下，名为“my-feature”的分支以橙色轮廓突出显示。](/assets/images/help/desktop/select-branch-from-dropdown.png)
2. 在菜单栏中，单击“分支”，然后单击“删除...”。还可按<kbd>Shift</kbd>+<kbd>命令</kbd>+<kbd>D</kbd> 。
   ![Mac 上菜单栏的屏幕截图。 在展开的“分支”下拉菜单中，光标悬停在“删除”选项上，以蓝色突出显示。](/assets/images/help/desktop/delete-branch-mac.png)

</div>

<div class="ghd-tool windows">

1. 在存储库栏，单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-branch" aria-label="git-branch" role="img"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg> Current Branch”，然后单击要删除的分支\*\*\*\*。
   ![“Current Branch”下拉列表视图的屏幕截图。 在“最近使用的分支”下，名为“my-feature”的分支以橙色轮廓突出显示。](/assets/images/help/desktop/select-branch-from-dropdown.png)
2. 在菜单栏中，单击“分支”，然后单击“删除...” 。还可按 <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>D</kbd>。
   ![Windows 上“GitHub Desktop”菜单栏的屏幕截图。 在展开的“分支”下拉菜单中，标有“删除”的选项以橙色突出显示。](/assets/images/help/desktop/delete-branch-win.png)

</div>

## 其他阅读材料

* [将仓库从 GitHub 克隆到 GitHub Desktop](/zh/desktop/adding-and-cloning-repositories/cloning-a-repository-from-github-to-github-desktop)
* ```
             GitHub 术语表中的 [AUTOTITLE](/get-started/learning-about-github/github-glossary#branch)
  ```
* [分支](/zh/enterprise-server@3.22/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches)
* Git 文档中的“[分支简介](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell)”
* [在 GitHub Desktop 中暂存更改](/zh/desktop/making-changes-in-a-branch/stashing-changes-in-github-desktop)