当前位置:首页 > 文章列表 > 文章 > 软件教程 > Git 图形客户端怎样管理多个 worktree

Git 图形客户端怎样管理多个 worktree

来源:17golang原创 2026-10-18 04:33:33 0浏览 收藏

Git 图形客户端可以把同一个仓库的多个分支放进不同目录,让你同时处理功能开发、缺陷修复和代码对比,不必反复切换主工作区。本文用 VS Code 的内置 Git 界面作示范:先从仓库的 Repositories 视图创建 worktree,再分别打开和核对它们,最后从主仓库安全清理不再需要的工作目录。

官方地址:https://code.visualstudio.com/

worktree 共享同一份 Git 历史,但每个关联工作区都有自己的目录、签出分支和未提交变更。创建时关注“分支 + 目录”,删除时关注“未提交文件 + 分支是否仍需保留”,就能把并行开发和清理动作分开。
  • 创建前:确认仓库和当前分支,避免在错误的仓库上操作。
  • 创建时:为每个 worktree 指定独立目录,不能让两个工作区抢同一个目录。
  • 使用中:在 Repositories 视图里核对分支、路径和改动归属。
  • 清理前:提交、暂存或复制需要保留的内容;删除工作区不会自动删除分支。

先确认图形客户端看到的是哪个仓库

打开 VS Code 后进入源代码管理视图,再打开 Repositories 视图。这里可能同时列出多个仓库和关联 worktree。开始操作前先确认仓库名称、当前分支以及目录位置;如果窗口处于多仓库模式,后续的暂存、提交或删除动作都可能作用于当前选中的条目,而不是你以为的主目录。

主 worktree 通常是最初打开的仓库目录,关联 worktree 则是同一仓库历史下的其他工作目录。它们共享提交历史,但不共享工作文件和未提交修改。先把“主目录”和“新目录”区分开,后面的创建、打开和删除才容易验收。

源代码管理 Repositories 视图中打开 Worktrees 创建入口的原创界面说明图
图1:原创界面说明图,展示从 Repositories 视图进入 Worktrees 创建入口;它不是实际软件截图,也不是运行证据。

用 Worktrees 菜单创建独立工作目录

在 Repositories 视图中选中目标仓库,打开更多操作菜单,选择 Worktrees > Create Worktree。随后按提示选择分支和目录。已有本地分支可以直接作为目标;如果需要从某个起点开始独立工作,先确认分支来源,再填写一个不会和主工作区重叠的目录。

  1. 打开源代码管理中的 Repositories 视图。
  2. 选中目标仓库,打开仓库行右侧的更多操作菜单。
  3. 选择 Worktrees > Create Worktree。
  4. 选择要签出的分支,并指定新的工作目录。
  5. 创建完成后,在列表中检查新 worktree 的分支和路径。

Git 不允许同一个本地分支同时被多个 worktree 签出。如果分支已经在主工作区或其他关联目录中使用,图形客户端通常会拒绝这次创建;此时应选择另一个分支,或先处理原 worktree,而不是强行覆盖目录。

Repositories 视图列出主工作区与多个关联 worktree 的原创界面说明图
图2:原创界面说明图,展示多个 worktree 与各自分支并列出现的状态;它用于解释界面关系,不代表实际运行截图。

打开和切换多个 worktree

创建后,关联 worktree 会作为单独条目显示在 Repositories 视图中。选中它可以查看当前分支和变更,再选择 Open Worktree in New Window 或在当前窗口打开。需要并行处理时,可以让主分支和功能分支分别占用不同窗口;需要比较实现时,再从列表中确认两边的路径和分支名称。

切换 worktree 的核心不是把一个目录里的文件切换成另一个分支,而是打开另一个已经签出分支的目录。因此,某个 worktree 里的未提交修改不会自动出现在另一个 worktree 中。提交、暂存、撤销和冲突处理前,都要看清源代码管理面板顶部对应的仓库条目。

如果已有目录没有自动出现在列表中,可以在设置中启用 worktree 检测,再回到 Repositories 视图检查。检测范围较大的仓库应留意扫描数量限制;对一个新创建并由客户端管理的 worktree,通常可以直接从列表打开。

删除前怎样核对,避免把改动一起删掉

清理 worktree 前先打开它的源代码管理面板,查看 Changes、Staged Changes 和未跟踪文件。需要保留的内容可以提交到该分支,或者先复制、暂存并记录去向。只看到“没有待提交改动”也不等于目录里没有重要文件,因为被忽略的本地配置和依赖目录可能不会出现在普通变更列表中。

确认后回到主仓库目录,运行命令面板中的 Git: Delete Worktree...,选择要清理的 worktree,并再次核对显示的文件夹路径。删除工作区会移除该目录;分支和已经提交的历史仍然属于共享仓库,后续仍可查看或合并。

如果客户端提示存在修改或未跟踪文件,不要直接选择强制删除。强制操作可能连同这些本地内容一起移除;只有确认它们不再需要,或已经在其他位置保存后,才适合继续。

删除关联 worktree 前检查未提交文件且保留分支历史的原创界面说明图
图3:原创界面说明图,展示删除工作区前的风险提示与删除后的分支保留关系;它不是实际软件截图。

用最小清单验收最终状态

完成一次创建、使用或清理后,可以用下面的清单做人工核对:主 worktree 仍在正确目录;新 worktree 的分支名称与任务一致;各目录的未提交改动没有串到一起;删除动作只针对目标工作目录;需要保留的提交仍能在分支历史中找到。

如果图形界面没有显示某个状态,可以把下面的命令作为只读参考。它们不替代图形客户端的操作,重点是帮助确认 worktree 列表和目录归属。

# 查看当前仓库登记的主工作区与关联工作区
git worktree list

# 只移除已经确认不再需要的关联工作区
git worktree remove /path/to/feature-worktree

# 清理已经被手工删除、但 Git 仍保留的工作区登记
git worktree prune

上面的路径只是示例,执行前要替换成目标 worktree 的实际路径。尤其不要把主仓库目录当作 remove 参数;如果只是想暂时离开某个分支,优先关闭对应窗口或提交改动,而不是直接删除工作区。

常见问题

为什么创建 worktree 时提示分支已被占用?

同一个本地分支不能同时签出到多个 worktree。先在 Repositories 视图查找该分支当前所在的工作区,再选择新的分支,或按实际任务结束原 worktree。

打开新 worktree 后为什么看不到主目录的修改?

关联 worktree 共享 Git 历史,但不共享工作文件和未提交改动。主目录里的未提交修改不会自动迁移;需要时应提交、暂存或使用客户端提供的迁移能力。

删除 worktree 会删除分支吗?

删除关联工作区主要移除它的工作目录,已提交的分支历史仍在仓库中。删除分支是另一个独立动作,不能把两者混为一谈。

被忽略的配置文件要怎样处理?

创建 worktree 时,Git 默认不会复制被忽略的本地配置或依赖目录。需要共享或复制这些内容时,应使用客户端提供的 worktree 文件设置,并先确认其中没有不该暴露给其他工作区的凭据。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
Go cgo 传递指针触发检查怎么办Go cgo 传递指针触发检查怎么办
上一篇
Go cgo 传递指针触发检查怎么办
Figma 怎样用变量统一组件颜色
下一篇
Figma 怎样用变量统一组件颜色
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    513次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    572次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    598次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    549次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    366次使用