# 在 GitHub Desktop 中管理工作树

工作树让你可以同时在同一仓库的多个分支上工作，因此你可以切换工作上下文、审查更改或进行热修复，而无需先将当前工作暂存起来。

## 关于工作树

Git 工作树允许你同时查看同一存储库的多个分支，每个分支都位于计算机上的自己的目录中。 这意味着你可以在功能分支上工作、快速审查另一个分支上的拉取请求，或者进行紧急修复，而无需在当前分支上暂存或提交未完成的工作。

GitHub Desktop 提供用于创建、切换、重命名和删除工作树的内置支持。 当存储库具有工作树时，**“存储库**”和 **“分支**”下拉列表之间的工具栏中会显示**一个工作树**下拉列表。

> \[!NOTE]
> 仅在您至少有一个已链接的工作树时，**Worktree** 下拉列表才会显示。 若要创建第一个工作树，请使用 **“存储库** ”菜单或右键单击工具栏中的 **“存储库** ”下拉列表。

每个工作树都与分支（或分离的 HEAD 提交）相关联。 主工作树是你最初克隆的仓库，链接工作树则是你创建的额外检出副本。

## 创建工作树

可以通过右键单击工具栏中的 **“存储库**”下拉列表，或从 **“工作树**”下拉列表中（已有工作树后）从“存储库 **”菜单**创建新的工作树。

### 创建第一个工作树

如果存储库尚未有任何链接的工作树，则工具栏中不显示 **Worktree** 下拉列表。 创建第一个工作树：

1. 在菜单栏中，单击“ **存储库**”，然后单击“ **新建工作树...”**。

   或者，右键单击工具栏中的 **“存储库** ”下拉列表，然后单击“ **新建工作树...”**。

   <div class="ghd-tool mac">

   ![Mac 上“存储库”下拉菜单的屏幕截图。 “新建工作树”选项以蓝色突出显示。](/assets/images/help/desktop/mac-repository-new-worktree-menu.png)

   </div>

   <div class="ghd-tool windows">

   ![Windows上“存储库”下拉菜单的屏幕截图。 “新建工作树”选项以蓝色突出显示。](/assets/images/help/desktop/windows-repository-new-worktree-menu.png)

   </div>

2. 在“添加工作树”对话框中，在 **“工作树名称** ”字段中键入工作树的名称。

GitHub Desktop 根据输入的名称，自动确定将创建工作树的路径。 完整路径显示在对话框底部。

1. （可选）在 **“分支名称** ”字段中，键入或选择分支名称。

   * 如果将此字段留空，则会创建与工作树同名的新分支。
   * 如果键入现有本地分支的名称，则会在新的工作树中签出该分支。
   * 如果键入远程分支的名称，则会从远程引用创建新的本地分支。

   <div class="ghd-tool mac">

   ![Mac 上“添加工作树”对话框的屏幕截图，其中显示了名称、路径和分支字段。](/assets/images/help/desktop/mac-add-worktree-dialog.png)

   </div>

   <div class="ghd-tool windows">

   ![Windows上的“添加工作树”对话框的屏幕截图，其中显示了名称、路径和分支字段。](/assets/images/help/desktop/windows-add-worktree-dialog.png)

   </div>

2. 单击“ **创建工作树**”。

创建第一个链接的工作树后， **“工作树** ”下拉列表将显示在工具栏中。

### 创建额外的工作树

一旦 **“工作树** ”下拉列表可见，还可以从那里创建工作树：

1. 在存储库栏中，单击 **“工作树** ”下拉列表。

   <div class="ghd-tool mac">

   ![Mac 上工作树下拉列表的屏幕截图。 在展开的“工作树”下拉列表中，“新建工作树”按钮以蓝色突出显示。](/assets/images/help/desktop/mac-worktree-dropdown-new-worktree.png)

   </div>

   <div class="ghd-tool windows">

   ![Windows上工作树下拉列表的屏幕截图。 在展开的“工作树”下拉列表中，“新建工作树”按钮以蓝色突出显示。](/assets/images/help/desktop/windows-worktree-dropdown-new-worktree.png)

   </div>

2. 单击“ **新建工作树**”。

3. 完成“添加工作树”对话框中的字段，如 [创建第一个工作树](#creating-your-first-worktree)中所述，然后单击“ **创建工作树**”。

GitHub Desktop 创建工作树并自动切换到它。

## 在工作树之间切换

您可以随时切换不同的工作树。 切换工作树时， GitHub Desktop 将工作目录更新为所选工作树的路径。

1. 在存储库栏中，单击 **“工作树** ”下拉列表。
2. 在工作树列表中，单击要切换到的工作树。

   ![显示“主工作树”和“链接工作树”分组的工作树下拉菜单截图，活动工作树旁带有勾选标记。](/assets/images/help/desktop/worktree-dropdown.png)

   工作树列表分为“主工作树”和“链接的工作树”。 每个项显示工作树目录名称和关联的分支名称。 可以使用列表顶部的筛选器字段按名称搜索工作树。

## 重命名工作树

可以重命名已链接的工作树。 不能重命名主工作树。

1. 在存储库栏中，单击 **“工作树** ”下拉列表。

2. 右键单击要重命名的工作树，然后单击“ **重命名...”**。

   <div class="ghd-tool mac">

   ![Mac 上工作树项的上下文菜单的屏幕截图，其中包含“重命名”、“复制名称”、“复制路径”和“删除”选项。](/assets/images/help/desktop/mac-worktree-context-menu.png)

   </div>

   <div class="ghd-tool windows">

   ![Windows工作树项的上下文菜单的屏幕截图，其中包含“重命名”、“复制名称”、“复制路径”和“删除”选项。](/assets/images/help/desktop/windows-worktree-context-menu.png)

   </div>

3. 在“重命名工作树”对话框中，键入工作树的新名称。

4. 单击“重命名”。

## 删除工作树

可以删除不再需要的链接工作树。 无法删除主工作树，也无法删除 Git 为防止其被删除而锁定的工作树。

1. 在存储库栏中，单击 **“工作树** ”下拉列表。
2. 右键单击要删除的工作树，然后单击“ **删除...”**。
3. 在确认对话框中，单击“ **删除**”。

   （可选）选择“ **不要再次显示此消息** ”以跳过将来的此确认。 可以在首选项中重新启用确认。 请参阅 [配置删除工作树的提示](#configuring-a-prompt-for-deleting-worktrees)。

   <div class="ghd-tool mac">

   ![Mac 上“删除工作树”确认对话框的屏幕截图，其中显示了“不再显示此消息”复选框。](/assets/images/help/desktop/mac-delete-worktree.png)

   </div>

   <div class="ghd-tool windows">

   ![Windows上“删除工作树”确认对话框的屏幕截图，其中显示了“不再显示此消息”复选框。](/assets/images/help/desktop/windows-delete-worktree.png)

   </div>

   如果删除失败（例如，因为工作树包含未提交的更改）， GitHub Desktop 则显示错误对话框以强制删除工作树。 如果你取消操作，GitHub Desktop 会将你切换回你最初正在使用的工作树。

## 配置删除工作树的提示

在删除工作树之前，可以选择是否 GitHub Desktop 要求确认。

<div class="ghd-tool mac">

1. 在菜单栏中，选择“GitHub Desktop”，然后单击“设置”\*\*\*\*\*\*\*\*。

   ![Mac 上的菜单栏的屏幕截图。 在打开的“GitHub Desktop”下拉菜单下，光标悬停在“设置”上，该设置以蓝色突出显示。](/assets/images/help/desktop/mac-choose-settings.png)

2. 在“设置”窗口中，单击“ **提示**”。

3. 选中或取消选中 **“删除工作树** ”复选框以启用或禁用确认提示。

</div>

<div class="ghd-tool windows">

1. 使用文件”菜单，然后单击“选项” 。

   ![Windows 上的“GitHub Desktop”菜单栏的屏幕截图。 在展开的“文件”下拉菜单中，以橙色框出了“选项”项。](/assets/images/help/desktop/windows-choose-options.png)

2. 在“选项”窗口中，单击“ **提示**”。

3. 选中或取消选中 **“删除工作树** ”复选框以启用或禁用确认提示。

</div>

## 延伸阅读

* [在 GitHub Desktop 中管理分支](/zh/desktop/making-changes-in-a-branch/managing-branches-in-github-desktop)
* Git 文档中的 [git-worktree](https://git-scm.com/docs/git-worktree)