VS Code 中的 Git 分支和工作树
Git 分支可让您同时处理不同的功能或实验,而不会影响您的主代码库。VS Code 提供了分支管理工具、用于并行开发的 Git 工作树以及用于临时更改的暂存管理。
本文介绍如何在 VS Code 中使用分支、工作树和暂存来管理并行开发工作。
使用分支
分支是指向 Git 历史记录中特定提交的轻量级、可移动指针。它们允许您脱离主开发线,独立开发功能。
例如,假设您正在开发一个 Web 应用程序,需要添加用户身份验证,同时还需要修复支付系统中的错误。您可以创建两个分支:
feature/user-authentication- 包含您的登录和注册功能bugfix/payment-validation- 包含支付处理错误修复
每个分支都维护着自己的一组更改,而不会相互影响。您可以在分支之间切换以处理不同的任务,然后在完成后将完成的分支合并回主分支。
查看当前分支
当前分支显示在 VS Code 的多个位置:
- 状态栏:显示当前分支名称,并允许快速切换分支。
- 存储库视图:在存储库标题中显示当前分支。
- 源代码管理图:直观地表示分支关系和历史记录。

切换分支
在 Git 术语中,切换到另一个分支称为“检出”分支。当您检出分支时,Git 会更新您的工作目录以匹配该分支的状态。
切换到另一个分支
-
在状态栏中选择分支名称,或从命令面板运行 **Git: Checkout to** 命令((⇧⌘P (Windows, Linux Ctrl+Shift+P))。
-
从可用分支列表中选择
- 本地分支:存在于本地计算机上的分支。
- 远程分支:来自远程存储库的分支,您可以在本地检出。
- 最近使用的分支:最近使用过的分支。
如果您在切换分支时有未提交的更改,Git 可能会阻止切换,以避免丢失工作。请考虑提交更改或使用 暂存 再切换。
创建新分支
创建新分支以开始处理新功能或实验。
-
在状态栏中选择分支名称,或从命令面板运行 **Git: Create Branch**。
-
输入新分支的名称。使用描述性名称,如 `feature/user-authentication` 或 `bugfix/login-error`。
提示VS Code 可以为您生成随机分支名称。可以通过 git.branchRandomName.enable 和 git.branchRandomName.dictionary 设置进行配置。
-
选择要从中创建新分支的源分支(通常是 `main` 或 `develop`)。

VS Code 在创建后会切换到新分支。
如果您使用 GitHub Pull Requests and Issues 扩展,您可以直接从 GitHub 问题创建分支,这样您就可以在新本地分支中开始工作,并自动为您预填充拉取请求。
重命名和删除分支
重命名当前分支
- 从命令面板运行 **Git: Rename Branch**,或从 **更多操作 (...)** 菜单中选择它。
- 输入新的分支名称。
删除分支
- 切换到另一个分支(您无法删除当前活动分支)。
- 从命令面板运行 **Git: Delete Branch**,或从 **更多操作 (...)** 菜单中选择它。
- 从列表中选择要删除的分支。
您也可以使用匹配的 **Delete Remote Branch** 操作删除远程分支。
删除分支会永久性地将其从本地存储库中移除。请确保该分支已被合并,或者您不再需要这些更改。
合并和发布分支
完成功能后,将其合并回主分支。
- 切换到目标分支(通常是 `main` 或 `develop`)。
- 从命令面板运行 **Git: Merge Branch**。
- 选择要合并的分支。
要将分支发布到远程存储库,请使用 **Publish Branch** 操作。
VS Code 在源代码管理视图中显示合并结果。如果存在冲突,VS Code 会突出显示它们并提供解决冲突的工具。了解更多关于 解决合并冲突 的信息。
使用 Git 工作树
VS Code 内置支持 Git 工作树,可以轻松地管理和同时处理多个分支。
理解工作树
工作树是 Git 分支在自己的目录中的独立检出。这允许您为同一个存储库拥有多个工作目录,每个目录都位于不同的分支上。工作树功能尤其适用于:
- 在单独的文件夹中同时处理多个功能。
- 并行运行应用程序的不同版本。
- 比较不同分支的实现。
创建工作树
在 VS Code 中创建新的工作树。
-
从源代码管理视图打开 **源代码管理存储库** 视图。

-
选择您的存储库,打开 **更多操作 (...)** 菜单,然后选择 **Worktrees** > **Create Worktree**。

-
按照提示选择新工作树的分支和位置。
VS Code 会在指定位置创建一个新的文件夹作为工作树,并将选定的分支检出到该文件夹中。
新工作树将显示为 **源代码管理存储库** 视图中的一个独立条目。
切换工作树
VS Code 可以同时显示多个存储库(包括工作树)。
- 每个工作树都显示为 **源代码管理存储库** 视图中的一个独立存储库。
- 您可以打开多个 VS Code 窗口,每个窗口指向一个不同的工作树。
- 使用 **文件** > **最近打开** 来快速切换工作树目录。
打开工作树
有多种方法可以打开工作树:
-
直接在 VS Code 中打开与工作树关联的文件夹。VS Code 会自动检测它是一个现有存储库的工作树。
-
在源代码管理存储库视图中右键单击工作树,然后选择 **在新窗口中打开工作树** 或 **在当前窗口中打开工作树**。
-
在命令面板中运行 **Git: Open Worktree in Current Window** 或 **Git: Open Worktree in New Window** 命令,然后选择所需的工作树。
比较和迁移工作树的更改
当您在工作树中进行更改时,您可以将这些更改与主工作区进行比较,并将工作树的更改带回主存储库。
-
在源代码管理视图中,右键单击工作树中的已更改文件,然后选择 **与工作区进行比较** 来并排查看差异。

-
审查后,使用命令面板中的 **Migrate Worktree Changes** 命令将工作树中的所有更改合并到当前工作区。
后续步骤
- 暂存和提交 - 了解分支内的提交更改。
- 合并冲突 - 处理合并分支时的冲突
- 存储库和远程 - 使用远程分支和协作。
- 与 GitHub 协作 - 在分支工作流中使用 GitHub 拉取请求。