Claude Code 现已支持原生 Git Worktree(体验非常出色)

BBetter Stack
Computing/SoftwareInternet Technology

Transcript

00:00:00Claude Code 最近获得了
00:00:02惊人数量的更新,从 Claude Desktop 的 SSH 支持、
00:00:05应用预览、GitHub 集成,
00:00:07到终端中的简单模式,
00:00:09该模式去除了技能、插件和自定义工具,
00:00:11让处理基础任务变得非常轻松。
00:00:13但目前最大的更新莫过于原生的工作树(work tree)支持,
00:00:16这意味着你的 AI 代理可以独立开发多个功能
00:00:18或修复漏洞,彼此隔离,
00:00:20而无需你进行任何手动配置。
00:00:23但这次发布是否操之过急?
00:00:25因为许多开发者已经遇到了一些基础问题。
00:00:28点击订阅,让我们一探究竟。
00:00:30将 Git 的工作树与编程代理结合使用并不是什么新鲜事。
00:00:33事实上,Claude Desktop 已经支持有一阵子了,
00:00:35还有许多插件或工具也支持它,
00:00:37比如我们之前做过视频介绍的 Claude Squad。
00:00:41但我个人之前没有这么做的原因之一,
00:00:43是因为手动配置会增加心理负担,
00:00:46希望 Claude Code 的这个新功能
00:00:49能让我轻松许多。
00:00:50让我们来试试看。
00:00:51这里有一个 Claude 用 React 开发的基础待办事项应用。
00:00:54出于测试目的,除了测试之外,
00:00:56我通常不会去开发这种应用。
00:00:58无论如何,我想添加一个深色模式切换功能,
00:01:01因为现在的界面太刺眼了。
00:01:02我还想添加将数据保存到
00:01:04本地存储(local storage)的功能,因为刷新后数据就丢了。
00:01:07此外,我还想增加编辑待办事项的功能。
00:01:10通常情况下,我会把所有这些功能写在一个提示词里,
00:01:12即:深色模式、本地存储
00:01:14以及编辑待办事项的能力。
00:01:16但问题是,如果其中一个功能出现了漏洞,
00:01:20那我就得处理整个任务,
00:01:22从而拖慢其他功能的发布速度,
00:01:25因为所有代码都在同一个 PR 或同一个分支上。
00:01:28但有了工作树,
00:01:28我可以在本地机器上同时
00:01:31在不同的分支中开发这些功能,
00:01:33无需进行任何手动设置。
00:01:35如果某个功能出了问题,
00:01:37我可以先提交另外两个功能,
00:01:39然后在独立的分支上专门解决那个问题。
00:01:41让我来演示一下具体操作。
00:01:42如果我在运行 Claude Code 时加上 -w 参数,
00:01:45它就会为我创建一个
00:01:47由 Claude 随机命名的工作树。
00:01:49等等,叫 Lacan?
00:01:50好吧。
00:01:52但如果我想给工作树命名,
00:01:54我可以在 -w 参数后面指定名称,
00:01:56就像我在这里操作的一样。
00:01:58这会在这里创建一个新的工作树,
00:02:00同时也会创建一个新分支,
00:02:02但它不会删除我们之前创建的工作树。
00:02:05所以请记住这一点,
00:02:06如果你最后创建了很多临时工作树的话。
00:02:08在项目的 .claude 目录下的 worktrees 文件夹里,
00:02:11我们可以查看我们的工作树
00:02:13并看到所有与之关联的代码文件。
00:02:15注意,工作树功能仅在
00:02:16你的项目已初始化 Git
00:02:18并且至少提交过一次时才有效。
00:02:20现在,我可以在不同的工作树中
00:02:22为这个项目实现所有功能了。
00:02:24现在这三个功能都完成了,
00:02:26我们可以看到这里的深色模式切换是正常的。
00:02:29而在这个版本里,虽然没有深色模式,
00:02:31但我可以编辑待办事项。
00:02:32比如我添加一个新项,然后在这里修改它。
00:02:35至于本地存储那个分支,似乎出了点问题,
00:02:38但这正是工作树的优势所在,
00:02:40因为我能看到其他两个功能运行良好。
00:02:43我可以先把那两个提交或创建拉取请求,
00:02:44然后专注于解决这一个问题,
00:02:46我可以开启一个专门的 Claude Code 会话
00:02:48来修复这个错误。
00:02:49当处理完一个工作树后,
00:02:51我可以选择保留它以便稍后返回,
00:02:53或者将其从系统中移除。
00:02:54如果我决定保留它,
00:02:55只要指定名称,我就能回到
00:02:58完全相同的工作树,如你所见。
00:03:00我甚至可以从当前工作树恢复会话,
00:03:03或者按 Control + W 查看该项目中的所有会话。
00:03:06虽然我还没完全搞清楚
00:03:07它是如何计算当前会话的,
00:03:08因为我现在还在 main 分支上。
00:03:11说到当前会话,
00:03:12如果你想直接在工作树目录中工作,
00:03:15你可以直接切换过去,
00:03:16使用 cd .claude/worktrees 等路径,
00:03:19或者运行带 --tmux 参数的工作树命令,
00:03:21它会直接带你进入该目录。
00:03:23如果我打开一个新的分栏,
00:03:26你可以看到我确实在该工作树中,
00:03:27并且可以浏览该工作树特有的文件。
00:03:30但工作树最酷的一点是
00:03:31它们支持子代理(sub-agents),
00:03:33这意味着我可以让不同的子代理
00:03:35在同一个 Claude Code 会话中,
00:03:38在不同分支上开发多个功能。
00:03:40如果你想在自定义子代理中支持工作树,
00:03:42让自定义子代理自动启动工作树,
00:03:45你只需要在 front matter 中添加这个
00:03:48isolation: worktree,Claude 就会处理剩下的事情。
00:03:50总的来说,我对这个功能印象非常深刻,
00:03:52这也是我肯定会
00:03:54经常使用的一个功能,
00:03:55特别是新的工作树钩子(hooks),
00:03:57它允许你在没有 Git 的情况下使用工作树,
00:04:00比如支持 SVN、Jujutsu 等,
00:04:02并且还可以在创建新工作树时
00:04:04自动运行脚本。
00:04:05但不幸的是,似乎很多人
00:04:08在使用工作树时遇到了问题,
00:04:09自从最近一次 Claude Code 更新后,
00:04:11似乎是因为一个失效的功能开关(feature flag)。
00:04:13幸运的是,你可以让 Claude Code 修复自己的二进制文件
00:04:17作为临时措施,
00:04:18但希望团队稍后能发布一个正式的补丁,
00:04:21让更多人能体验到这个超棒的功能。
00:04:24说到超棒的功能,
00:04:25如果你是 React 开发者,想要一个
00:04:28能自动检测 React 反模式的 CLI 工具,
00:04:31那就去看看 Andris 的这个视频吧,
00:04:33它详细介绍了 React Doctor。

Key Takeaway

Claude Code 通过原生工作树支持实现了多任务并行开发与环境隔离,显著提升了 AI 驱动编程的效率与协作灵活性。

Highlights

Claude Code 推出了原生 Git Worktree(工作树)支持,允许 AI 代理在隔离环境中并行处理多个任务。

使用 -w 参数可快速创建随机命名或指定名称的工作树,并自动生成对应的 Git 分支。

工作树功能特别适合同时开发多个功能(如深色模式、本地存储),避免因单一功能 Bug 阻塞整个 PR 进度。

新版本支持子代理(sub-agents)在同一会话中通过 worktree 隔离机制同时处理不同分支的任务。

开发者可以通过在 front matter 中添加 isolation: worktree 配置,使自定义 AI 代理自动启用该功能。

Claude Code 引入了工作树钩子(hooks),未来可扩展支持 SVN、Jujutsu 等非 Git 版本控制系统并运行自动化脚本。

针对近期因功能开关导致的二进制文件失效问题,用户可以尝试让 Claude Code 自行修复其安装文件。

Timeline

Claude Code 更新概览与工作树简介

视频开篇介绍了 Claude Code 近期的一系列重磅更新,包括 SSH 支持、应用预览、GitHub 集成以及简易终端模式。重点强调了本次更新的核心功能:原生 Git 工作树(Worktree)支持。该功能允许 AI 代理在互不干扰的隔离环境中独立修复 Bug 或开发新功能,无需开发者进行繁琐的手动配置。尽管功能强大,但作者也提到目前有部分开发者在初始体验中遇到了一些基础性问题。这一章节为后续深入探讨工作树的实际应用场景和操作流程奠定了基础。

工作树在多任务开发中的实战价值

作者通过一个 React 待办事项应用的案例,解释了为什么原生工作树支持对开发者至关重要。在没有工作树的情况下,同时开发深色模式、本地存储和编辑功能通常会将代码混在一个分支中,导致局部错误影响整体发布进度。通过使用工作树,每个功能都可以在独立的分支和目录中运行,实现了物理层面的任务解耦。这种方式极大地降低了开发者的心理负担,使得处理复杂并行任务变得更加轻松。作者指出,虽然之前有类似 Claude Squad 的工具,但官方的原生集成在易用性上更胜一筹。

工作树的操作指令与文件结构

这一部分详细演示了如何在命令行中使用 Claude Code 的工作树功能,包括使用 -w 参数创建随机命名的工作树。用户也可以通过在参数后附加名称来指定工作树目录,这些文件会存储在项目的 .claude/worktrees 目录下。作者提醒用户,该功能要求项目必须先初始化 Git 并完成至少一次提交才能生效。演示过程中展示了如何在不同分支间切换以检查各功能的实现情况,例如验证深色模式和编辑功能的独立运行。如果某个分支出现问题,开发者可以保留当前会话并开启新会话专门针对性地修复特定 Bug。

高级功能:子代理、自动化钩子与环境切换

本章节探讨了工作树的高级用法,如利用 --tmux 参数直接跳转到工作树目录进行操作。最令人兴奋的特性是子代理(sub-agents)支持,通过在配置文件的 front matter 中设置 isolation: worktree,可以让不同的 AI 子代理同时在不同分支上工作。此外,视频提到了新引入的工作树钩子(hooks),这使得系统能够支持 SVN 或 Jujutsu 等非 Git 环境,并能在创建环境时自动运行脚本。这些功能展示了 Claude Code 在构建复杂自动化开发工作流方面的巨大潜力。作者对这些功能的扩展性表示了高度肯定,认为这是提升生产力的核心武器。

已知问题修复与相关工具推荐

最后一部分讨论了当前版本中存在的一些技术瑕疵,特别是由于功能开关(feature flag)失效导致的二进制文件运行问题。作者提供了一个有趣的临时解决方案,即利用 Claude Code 的自我修复能力来处理其自身的安装问题。他表达了对开发团队尽快发布正式补丁的期待,以便让更多用户能够顺畅使用。视频结尾还推荐了一个名为 React Doctor 的 CLI 工具,该工具由 Andris 开发,专门用于自动检测 React 代码中的反模式。整体内容涵盖了从功能演示到故障排除的完整闭环,为开发者提供了极具参考价值的指南。

Community Posts

No posts yet. Be the first to write about this video!

Write about this video