# 使用 Git 工作树概念: Actually title

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com.cn/help/idea/llms.txt).

标准 Git 仓库通常使用单个工作树。 要在此设置中切换分支，必须 [提交](commit-and-push-changes.html#commit)或 [贮藏](shelving-and-unshelving-changes.html#stash)未完成的工作。 Git 工作树允许在单独的目录中同时签出多个分支，所有这些目录都链接到单个  `.git`  目录。

## 什么是 Git 工作树？

Git 工作树允许在单独的目录中同时签出同一仓库的多个分支。 使用 Git 工作树的常见用例包括：

* AI 驱动的开发：在单独的工作树中运行 AI 代理，以防止它们覆盖本地未保存的更改。

* 紧急错误修复：在单独的目录中处理关键问题，而不中断当前进度。

* 并行代码审查：在本地签出并测试拉取请求和合并请求，而不会干扰现有环境、数据库状态或构建工件。

* 长时间运行的任务：在一个工作树中执行繁重的测试套件或复杂构建，同时在另一个工作树中继续编写代码。

* 多分支上下文切换：管理多个长期运行的分支，无需贮藏更改，也无需在切换分支后等待大量文件重新编制索引。

Git 工作树是项目的链接副本。 与  `git clone`  不同，后者会创建仓库的完整副本，而所有工作树共享相同的中央  `.git`  历史记录。

创建工作树时，Git 会为文件生成一个新目录。 此目录不是一个完整的  `.git`  文件夹，而是包含一个  `.git`  文件，其中带有指回原始仓库的纯文本路径。 这可确保所有工作树保持同步，同时维持独立的工作环境。

![主工作树中的 Git 文件夹和链接工作树中的 Git 文件](https://resources.jetbrains.com.cn/help/img/idea/2026.3/linked_worktree.png)

有关 Git 工作树的更多信息，请参阅 [官方 Git 文档](https://git-scm.com/docs/git-worktree)。

## 创建和管理 Git 工作树

> **Note:**
> IntelliJ IDEA 目前支持包含单个仓库的项目使用 Git 工作树。

如果项目已有多个 Git 工作树，则默认提供   工作树   选项卡。 否则，可以在   Git   工具窗口 `Alt+9` (Windows), `⌘ 9` (macOS), `⌘ 9` (IntelliJ IDEA Classic (macOS)), `⌘ 9` (macOS System Shortcuts), `Alt+9` (XWin), `Alt+9` (GNOME), `Alt+9` (KDE), `Alt+9` (Emacs), `Alt+9` (Sublime Text), `⌘ 9` (Sublime Text (macOS)), `Alt+9` (Visual Studio), `⌘ 9` (Visual Studio (macOS)), `Alt+9` (NetBeans), `Alt+9` (Eclipse), `⌘ 9` (Eclipse (macOS)) 中通过点击 ![“向下”按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.chevronDownLarge.svg) 并选择   工作树   来打开它。

![Git 工具窗口，其中包含用于打开“工作树”选项卡的选项](https://resources.jetbrains.com.cn/help/img/idea/2026.3/open_worktrees_tab.png)

Procedure: 创建 Git 工作树

1. 在   Git   工具窗口 `Alt+9` (Windows), `⌘ 9` (macOS), `⌘ 9` (IntelliJ IDEA Classic (macOS)), `⌘ 9` (macOS System Shortcuts), `Alt+9` (XWin), `Alt+9` (GNOME), `Alt+9` (KDE), `Alt+9` (Emacs), `Alt+9` (Sublime Text), `⌘ 9` (Sublime Text (macOS)), `Alt+9` (Visual Studio), `⌘ 9` (Visual Studio (macOS)), `Alt+9` (NetBeans), `Alt+9` (Eclipse), `⌘ 9` (Eclipse (macOS)) 中，打开   工作树   选项卡，然后点击 ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)   新建工作树  。

或者，在主菜单中选择  `Git | 新建工作树` 。

这将打开   新建工作树   对话框。

![“新建工作树”对话框](https://resources.jetbrains.com.cn/help/img/idea/2026.3/new_worktree.png)

2. 在   新建工作树   对话框中，指定以下内容：

* 从分支 ：选择源分支。 请注意，不能同时在两个工作树中签出同一个分支。 如果要将当前签出的分支用作新工作树的源，可以从该分支创建另一个本地分支，并在新工作树中使用它。 为此，请选择 新建分支 选项。 > **Note:** > 如果所选源分支是远程分支，则会创建一个同名的本地分支，除非选择 新建分支 选项并提供一个不与现有本地分支重名的新名称。

* 项目名称 ：新工作树的名称。

* 位置 ：工作树的存储目录。 避免嵌套工作树：不建议在当前项目的目录内创建工作树（例如 `Projects/mainProject/linkedWorktree` ）。 目前，IntelliJ IDEA 会将此类项目错误识别为多根项目，从而破坏工作树集成。

创建新工作树后，IntelliJ IDEA 会将其作为单独的项目打开。

Procedure: 在不同工作树之间切换

工作树首次打开后，其行为与任何其他项目相同。 可以在主菜单中的   最近的项目   或窗口标头中的工具栏内的项目微件中找到它。

要切换到工作树（包括在 IntelliJ IDEA 外部创建的工作树），请执行以下操作：

1. 在   Git  工具窗口 `Alt+9` (Windows), `⌘ 9` (macOS), `⌘ 9` (IntelliJ IDEA Classic (macOS)), `⌘ 9` (macOS System Shortcuts), `Alt+9` (XWin), `Alt+9` (GNOME), `Alt+9` (KDE), `Alt+9` (Emacs), `Alt+9` (Sublime Text), `⌘ 9` (Sublime Text (macOS)), `Alt+9` (Visual Studio), `⌘ 9` (Visual Studio (macOS)), `Alt+9` (NetBeans), `Alt+9` (Eclipse), `⌘ 9` (Eclipse (macOS))中，打开   工作树  选项卡。

或者，在主菜单中选择  `Git | 工作树` 。

2. 双击目标工作树。

![Git 工具窗口中的“工作树”选项卡，其中包含多个工作树](https://resources.jetbrains.com.cn/help/img/idea/2026.3/several_worktrees.png)

工作树会根据系统设置在新窗口或现有窗口中打开。

默认情况下，   工作树   选项卡不会显示任何活动工作树的状态。 只有当工作树输入特定状态时，状态指示器才会在列表中显示：

* 已锁定 ：该工作树被外部锁定，以防止其被移动、 [删除](#delete-a-worktree)或 [修剪](#prune-worktrees)。

* 可修剪 ：该工作树目录已被手动从文件系统中移除。 这些记录可以安全地 [修剪](#prune-worktrees)，以清理您的仓库。

> **Tip:**
> 还可以通过 VCS 微件或   日志   选项卡（在   Git   工具窗口中）打开工作树，方法是选择当前已在工作树中签出的分支，右键点击该分支并选择   打开工作树  。

Procedure: 删除工作树

删除工作树之前，请确保已提交所有更改。

1. 在   Git  工具窗口 `Alt+9` (Windows), `⌘ 9` (macOS), `⌘ 9` (IntelliJ IDEA Classic (macOS)), `⌘ 9` (macOS System Shortcuts), `Alt+9` (XWin), `Alt+9` (GNOME), `Alt+9` (KDE), `Alt+9` (Emacs), `Alt+9` (Sublime Text), `⌘ 9` (Sublime Text (macOS)), `Alt+9` (Visual Studio), `⌘ 9` (Visual Studio (macOS)), `Alt+9` (NetBeans), `Alt+9` (Eclipse), `⌘ 9` (Eclipse (macOS))中，打开   工作树  选项卡。

或者，在主菜单中选择  `Git | 工作树` 。

2. 选择工作树，然后点击 ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.delete.svg)   删除  。

> **Note:**
> 无法删除主工作树或当前打开的工作树。

Procedure: 修剪工作树

如果不是通过在 IDE 中 [删除工作树](#delete-a-worktree)，而是手动删除了工作树目录，Git 会检测到文件丢失，并将该工作树标记为   可修剪  。 修剪会移除丢失工作树的 Git 内部记录，并释放它们关联的分支。

1. 在   Git  工具窗口 `Alt+9` (Windows), `⌘ 9` (macOS), `⌘ 9` (IntelliJ IDEA Classic (macOS)), `⌘ 9` (macOS System Shortcuts), `Alt+9` (XWin), `Alt+9` (GNOME), `Alt+9` (KDE), `Alt+9` (Emacs), `Alt+9` (Sublime Text), `⌘ 9` (Sublime Text (macOS)), `Alt+9` (Visual Studio), `⌘ 9` (Visual Studio (macOS)), `Alt+9` (NetBeans), `Alt+9` (Eclipse), `⌘ 9` (Eclipse (macOS))中，打开   工作树  选项卡。

或者，在主菜单中选择  `Git | 工作树` 。

2. 点击 ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.actions.clearCash.svg)   修剪  。

> **Note:**
> 此操作会立即清除所有可修剪的工作树，而不管当前选择。

## 故障排除

IntelliJ IDEA 将单独的工作树视为同一个项目
: 如果  `.idea/workspace.xml`  文件被提交到您的仓库，可能会出现这种情况。 由于此文件包含唯一的  `ProjectId` ，创建新的 Git 工作树时会重复该 ID。 因此，IDE 会因相同的 ID 而混淆，并错误地将这两个目录视为同一个项目。
:
:
:
: 如何修复：
:
:
:
: 1.  在 IntelliJ IDEA 中关闭您的项目。
:
: 2.  导航到您的 Git 工作树目录并删除  `workspace.xml`  文件（或者，您也可以打开该文件，只删除  `ProjectId`  行）。
:
: 3.  在 IDE 中重新打开项目，以便生成新的唯一 ID。
:
:
:
: 为防止再次发生此问题，请确保  `.idea/workspace.xml`  已添加到您的仓库  `.gitignore`  文件中。

