git worktree

示例

1. 创建一个裸仓库

git clone --bare https://github.com/your-org/your-monorepo.git your-monorepo
cd your-monorepo

2. 为每个分支创建工作树

# 主开发工作树
git worktree add ./main main

# 代理 A 的功能分支
git worktree add ./feature-auth feat/auth

# 代理 B 的 bug 修复分支
git worktree add ./fix-api fix/api-error

每个工作树都是一个完整的检出,拥有自己的文件,但它们都共享同一个 .git 对象存储。

3. 启用全局虚拟存储

在你的仓库中的 pnpm-workspace.yaml 文件中添加 enableGlobalVirtualStore: true

packages:
  - 'packages/*'

enableGlobalVirtualStore: true

4. 在每个工作树中安装依赖项

cd main && pnpm install
cd ../feature-auth && pnpm install
cd ../fix-api && pnpm install

第一次执行 pnpm install 会将软件包下载到全局存储中。 在其他工作树中进行后续安装几乎是瞬间完成的,因为它们只会创建指向同一存储的符号链接。

2026-03-27_17-49

Ref