用途
worktree 是一个面向 AutoGPT 平台开发的 Git worktree 设置技能,用于为并行开发快速创建独立的工作树。它把创建 worktree、复制环境文件、安装依赖和生成 Prisma 客户端等重复性初始化步骤整合在一起,减少手动配置成本。
主要能力
- 创建 Git worktree:从 Git 顶层目录推导路径。若参数中提供了名称则使用该名称,否则检查
git worktree list并选取下一个AutoGPT<N>。 - 支持两种创建方式:从已有分支创建,或基于 dev 创建新分支。
- 复制环境文件:从根 worktree 复制
.env,若不存在则回退到.env.default,覆盖autogpt_platform/backend、autogpt_platform/frontend和autogpt_platform三个路径。 - 安装依赖并生成 Prisma 客户端:在
autogpt_libs和backend中执行poetry install,在backend中执行poetry run prisma generate,在frontend中执行pnpm install。 - 可选运行应用:释放后端端口 8001、8002、8003、8005、8006、8007、8008 后启动后端。
- 提供清理命令,用于移除已创建的 worktree。
- 可选支持 branchlet 工具进行创建。
使用方式
创建 worktree:
ROOT=$(git rev-parse --show-toplevel)
PARENT=$(dirname "$ROOT")
# 从已有分支
git worktree add "$PARENT/<NAME>" <branch-name>
# 基于 dev 创建新分支
git worktree add -b <new-branch> "$PARENT/<NAME>" dev
复制环境文件:
ROOT=$(git rev-parse --show-toplevel)
TARGET="$(dirname "$ROOT")/<NAME>"
for envpath in autogpt_platform/backend autogpt_platform/frontend autogpt_platform; do
if [ -f "$ROOT/$envpath/.env" ]; then
cp "$ROOT/$envpath/.env" "$TARGET/$envpath/.env"
elif [ -f "$ROOT/$envpath/.env.default" ]; then
cp "$ROOT/$envpath/.env.default" "$TARGET/$envpath/.env"
fi
done
安装依赖:
TARGET="$(dirname "$(git rev-parse --show-toplevel)")/<NAME>"
cd "$TARGET/autogpt_platform/autogpt_libs" && poetry install
cd "$TARGET/autogpt_platform/backend" && poetry install && poetry run prisma generate
cd "$TARGET/autogpt_platform/frontend" && pnpm install
将 <NAME> 替换为实际的 worktree 名称(例如 AutoGPT7)。
可选运行应用:
TARGET="$(dirname "$(git rev-parse --show-toplevel)")/<NAME>"
for port in 8001 8002 8003 8005 8006 8007 8008; do
lsof -ti :$port | xargs kill -9 2>/dev/null || true
done
cd "$TARGET/autogpt_platform/backend" && poetry run app
清理:
# 将 <NAME> 替换为实际的 worktree 名称(例如 AutoGPT7)
git worktree remove "$(dirname "$(git rev-parse --show-toplevel)")/<NAME>"
可选使用 branchlet(若已安装):
branchlet create -n <name> -s <source-branch> -b <new-branch>
适用场景
适用于 AutoGPT 平台(autogpt_platform)的并行开发,例如需要同时维护多个分支、隔离不同功能开发环境,或快速搭建可运行的后端与前端开发环境。
限制
- CoPilot 测试中,SDK 模式会启动 Claude 子进程,无法在 Claude Code 内运行;需在
backend/.env中设置CHAT_USE_CLAUDE_AGENT_SDK=false以使用 baseline 模式。 - 运行应用前需释放指定后端端口。
- branchlet 为可选替代方案,需已安装。
- 关于收费、价格、平台支持范围等信息,资料中暂未提供。