VS Code 中的 Git 分支和工作树

Git 分支让你可以同时开发不同的功能或实验,而不会影响你的主代码库。VS Code 提供分支管理工具,并行开发的 Git 工作树,以及用于临时变更的存储管理。

本文介绍了在 VS Code 中处理分支、工作树和存储,以管理并行开发工作。

与分支合作

分支是轻量级、可移动的指向你 Git 历史中特定提交的指针。它们让你可以脱离主线开发,独立开发功能。

举个例子,假设你正在开发一个网页应用,需要添加用户认证,同时修复支付系统的一个漏洞。你可以创建两个分支:

  • 功能/用户认证- 包含您的登录和注册功能
  • 修复/支付验证- 包含支付处理错误的修复

每个分支都保持自己的一组变更,而不影响对方。你可以在不同分支之间切换来处理不同的任务,之后再把完成的分支合并回主分支。

查看当前分支

目前的分支在VS Code的多个地方出现:

  • 状态栏:显示当前分支名称并支持快速分支切换
  • 仓库视图:在仓库头部显示当前分支
  • 源代码控制图:可视化地表示分支关系和历史

当前分支在状态栏和源代码控制视图中显示的截图。

分支切换

切换到不同分支在Git术语中称为“检查”分支。当你检查一个分支时,Git 会更新你的工作目录,使其与该分支的状态相匹配。

要转到其他分支:

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

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

    • 本地分支:存在于你本地机器上的分支
    • 远程分支:你可以在本地访问远程仓库的分支
    • 近期分支:近期使用的分支
提示

如果你在切换分支时有未提交的更改,Git 可能会阻止切换以避免丢失工作。考虑先提交你的更改或使用储箱再切换。

创建新分支

创建一个新分支,开始开发某个功能或实验:

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

  2. 输入新分支名称。使用描述性名称,如功能/用户认证修复错误/登录错误.

    提示

    VS Code 可以帮你生成随机分支名。用

    git.branchRandomName.enable
    • 在VS代码中打开
    • 在VS Code Insiders中开放
    以及
    git.branchRandomName.dictionary
    • 在VS代码中打开
    • 在VS Code Insiders中开放
    设定。

  3. 选择源分支(通常如此)主要角色开发由此创建新的分支。

截图显示创建分支对话框,包含分支名称输入和源分支选择。

VS Code 创建后切换到新分支。

提示

如果你使用 GitHub 的 Pull Requests and Issues 扩展,可以直接从 GitHub issues 创建分支,这样你就能在新的本地分支中开始工作,并自动预填充拉取请求。

重命名和删除分支

将现有分会更名为:

  1. 运行 Git:从命令面板中重命名分支,或从“更多作”(...)菜单中选择。
  2. 于是进入了新的分支名称。

删除分支:

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

你也可以通过匹配的“删除远程分支”作删除远程分支。

注意

删除分支会永久从你的本地仓库中移除。确保分支已经合并,否则你就不需要这些更改了。

合并并发布分支

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

  1. 切换到目标分支(通常是主要角色开发).
  2. 从命令面板中运行 Git: 合并分支
  3. 选择合并的分支。

要向远程仓库发布分支,请使用“发布分支”作。

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

使用 Git 工作树

VS Code 内置支持 Git 工作树,方便同时管理和处理多个分支。

理解工作树

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

  • 同时在不同文件夹中开发多个功能
  • 并排运行不同版本的应用
  • 比较各分支的实现

创建工作树

要在 VS Code 中创建新的工作树:

  1. 从源控制视图打开源控仓库视图。

    截图显示了多个仓库的源代码库视图。

  2. 选择您的存储库,打开“更多作(...)”菜单,然后选择工作树>创建工作树

    截图显示了源控仓库视图中工作树的上下文菜单。

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

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

新工作树作为独立条目出现在源控制器仓库视图中。

工作树切换

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

  • 每个工作树在源代码控制仓库视图中都作为独立仓库出现
  • 你可以打开多个VS Code窗口,每个窗口指向不同的工作树
  • 使用文件 > 打开最近文件,快速切换工作树目录

打开工作树

打开工作树有多种方式:

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

  • 在源控仓库视图中右键点击工作树,选择“在新窗口打开工作树”或“当前窗口”打开工作树

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

比较并迁移工作树中的变更

当你在工作树中做更改时,可以将这些更改与主工作区进行比较,并将工作树的更改带回主仓库。

  1. 在源控制器视图中,右键点击工作树中的修改文件,选择“与工作区比较”,以并排查看差异。

    截图显示了工作树上下文菜单中的与工作区比较选项和并排差分视图。

  2. 审核后,使用命令调色板中的“迁移工作树变更”命令,将工作树上的所有更改合并到当前工作区。

下一步