VS Code 中的 Git 分支与工作树

Git 分支使您能够同时处理不同的功能或实验,而不会影响主代码库。VS Code 提供了用于分支管理、并行开发的 Git 工作树以及用于临时更改的暂存管理工具。

本文介绍了如何在 VS Code 中使用分支、工作树和暂存来管理并行开发工作。

使用分支

分支是 Git 历史记录中指向特定提交的轻量级、可移动指针。它们允许您从主开发线分离出来,并独立处理功能。

例如,假设您正在开发一个 Web 应用程序,需要添加用户身份验证,同时还要修复支付系统中的一个 Bug。您可以创建两个分支:

  • feature/user-authentication - 包含您的登录和注册功能
  • bugfix/payment-validation - 包含支付处理错误的修复程序

每个分支都维护自己的一组更改,互不影响。您可以在分支之间切换以处理不同的任务,稍后再将已完成的分支合并回主分支。

查看当前分支

当前分支显示在 VS Code 的多个位置:

  • 状态栏:显示当前分支名称并允许快速切换分支
  • 源代码管理视图:在存储库标题中显示当前分支
  • 源代码管理图:直观地展示分支关系和历史记录

Screenshot showing the current branch displayed in the Status Bar and Source Control view.

切换分支

在 Git 术语中,切换到另一个分支称为“检出”(checkout)。当您检出分支时,Git 会更新您的工作目录以匹配该分支的状态。

要切换到另一个分支:

  1. 在状态栏中选择分支名称,或从命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P)运行 Git: Checkout to 命令。

  2. 从可用分支列表中选择

    • 本地分支:存在于本地计算机上的分支
    • 远程分支:您可以本地检出的远程存储库中的分支
    • 最近分支:最近使用的分支
提示

如果您在切换分支时有未提交的更改,Git 可能会阻止切换以避免丢失工作。请考虑在切换前提交更改或使用 stash(暂存)

创建新分支

创建一个新分支以开始处理某项功能或实验

  1. 在状态栏中选择分支名称,或从命令面板运行 Git: Create Branch

  2. 输入新分支的名称。请使用描述性名称,例如 feature/user-authenticationbugfix/login-error

    提示

    VS Code 可以为您生成随机分支名称。通过 git.branchRandomName.enable 在 VS Code 中打开 在 VS Code Insiders 中打开 git.branchRandomName.dictionary 在 VS Code 中打开 在 VS Code Insiders 中打开 设置进行配置。

  3. 选择源分支(通常是 maindevelop)以创建新分支。

Screenshot showing the create branch dialog with branch name input and source branch selection.

创建完成后,VS Code 会切换到新分支。

提示

如果您使用 GitHub Pull Requests and Issues 扩展,您可以直接从 GitHub 问题创建分支,这将带您进入一个新的本地分支开始工作,并自动为您预填拉取请求(Pull Request)。

重命名和删除分支

重命名当前分支:

  1. 从命令面板运行 Git: Rename Branch,或从更多操作 (...) 菜单中选择它。
  2. 输入新分支名称。

删除分支:

  1. 切换到另一个分支(不能删除当前活动的分支)。
  2. 从命令面板运行 Git: Delete Branch,或从更多操作 (...) 菜单中选择它。
  3. 从列表中选择要删除的分支。

您也可以通过使用对应的 Delete Remote Branch 操作删除远程分支。

注意

删除分支会将其从本地存储库中永久移除。请确保该分支已合并,或者您不再需要其中的更改。

合并和发布分支

功能完成后,将其合并回主分支:

  1. 切换到目标分支(通常是 maindevelop)。
  2. 从命令面板运行 Git: Merge Branch
  3. 选择要合并的分支。

要将分支发布到远程存储库,请使用 Publish Branch 操作。

VS Code 会在“源代码管理”视图中显示合并结果。如果有冲突,VS Code 会突出显示它们并提供解决工具。了解更多关于解决合并冲突的信息。

使用 Git 工作树

VS Code 内置了对 Git 工作树 (Worktrees) 的支持,使您可以轻松地同时管理和处理多个分支。

理解工作树

工作树是 Git 分支在独立目录中的单独检出。这允许您为同一个存储库拥有多个工作目录,每个目录位于不同的分支上。工作树功能特别适用于:

  • 在单独的文件夹中同时处理多个功能
  • 并排运行应用程序的不同版本
  • 比较各分支之间的实现

创建工作树

在 VS Code 中创建新工作树:

  1. 从“源代码管理”视图中打开 源代码管理存储库 视图。

    Screenshot showing the Source Control Repositories view with multiple repositories listed.

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

    Screenshot showing the worktree context menu in the Source Control Repositories view.

  3. 按照提示选择新工作树的分支和位置。

    VS Code 会在指定位置为工作树创建一个新文件夹,并将所选分支检出到该文件夹中。

新工作树将作为单独的条目出现在 源代码管理存储库 视图中。

在工作树之间切换

VS Code 可以同时显示多个存储库(包括工作树):

  • 每个工作树在 源代码管理存储库 视图中显示为单独的存储库
  • 您可以打开多个 VS Code 窗口,每个窗口指向不同的工作树
  • 使用 文件 > 打开最近 快速在工作树目录之间切换

打开工作树

有多种方法可以打开工作树:

  • 在 VS Code 中直接打开与工作树关联的文件夹。VS Code 会自动检测到它是现有存储库的工作树。

  • 右键单击“源代码管理存储库”视图中的工作树,选择 Open Worktree in New WindowOpen Worktree in Current Window

  • 在命令面板中运行 Git: Open Worktree in Current WindowGit: Open Worktree in New Window 命令,并选择所需的工作树。

从工作树比较和迁移更改

当您在工作树中进行更改时,可以将这些更改与主工作区进行比较,并将工作树中的更改合并回主存储库。

  1. 在“源代码管理”视图中,右键单击工作树中已更改的文件,选择 Compare with Workspace 以并排查看差异。

    Screenshot showing the compare with workspace option in the worktree context menu and side-by-side diff view.

  2. 查看后,使用命令面板中的 Migrate Worktree Changes 命令将工作树中的所有更改合并到当前工作区。

后续步骤

© . This site is unofficial and not affiliated with Microsoft.