VS Code 中的 Git 分支与工作树

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

本文介绍了如何在 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 术语中,切换到不同的分支称为“检出 (Checking out)”分支。当您检出分支时,Git 会更新您的工作目录以匹配该分支的状态。

要切换到不同的分支:

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

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

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

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

创建新分支

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

  1. 选择状态栏中的分支名称,或从命令面板运行 Git: 创建分支 (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 问题创建分支,这能让您在新的本地分支中开始工作,并自动为您预填拉取请求。

重命名和删除分支

重命名当前分支:

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

删除分支:

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

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

注意

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

合并和发布分支

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

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

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

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

使用 Git 工作树 (Worktrees)

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

理解工作树

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

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

创建工作树

在 VS Code 中创建新工作树:

  1. 从“源代码管理”视图中打开 源代码管理存储库 (Source Control Repositories) 视图。

    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 窗口,每个窗口指向不同的工作树。
  • 使用 文件 (File) > 打开最近 (Open Recent) 在工作树目录之间快速切换。

打开工作树

有多种方式打开工作树:

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

  • 右键单击“源代码管理存储库”视图中的工作树,然后选择 在新窗口中打开工作树 (Open Worktree in New Window)在当前窗口中打开工作树 (Open Worktree in Current Window)

  • 在命令面板中运行 Git: 在当前窗口中打开工作树Git: 在新窗口中打开工作树 命令,然后选择所需的工作树。

比较和迁移来自工作树的更改

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

  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.