Configuration de worktree Git

VérifiéPrudence

Configure un nouveau worktree Git pour développement parallèle : création, copie des fichiers .env, installation des dépendances et génération du client Prisma.

Spar Skills Guide Bot
DeveloppementIntermédiaire
0029/08/2026
Claude Code
#git-worktree#parallel-development#environment-setup#prisma#autogpt

Recommandé pour

Notre avis

Crée un worktree git dédié pour une branche ou une PR en configurant l'arbre de travail, copiant les fichiers d'environnement, installant les dépendances et générant le client Prisma.

Points forts

  • Automatise la mise en place complète de l'environnement pour un nouveau worktree.
  • Préserve l'arbre de travail principal pour le travail en parallèle.
  • Gère le repli sur .env.default et l'installation des dépendances spécifiques au dépôt.
  • Inclut une commande de nettoyage et des aides pour démarrer l'application.

Limites

  • Conçu pour l'architecture du dépôt AutoGPT (chemins autogpt_platform).
  • Nécessite poetry, pnpm et que les ports requis soient libres.
  • La remarque sur les tests CoPilot est spécifique à Claude Code ; le mode SDK n'y fonctionne pas.
Quand l'utiliser

À utiliser lorsque vous avez besoin d'un environnement isolé pour travailler sur une branche ou une PR sans impacter votre checkout actuel.

Quand l'éviter

À éviter en dehors du monorepo AutoGPT ou si vous préférez une conteneurisation complète plutôt qu'un worktree.

Analyse de sécurité

Prudence
Score qualité82/100

The skill performs legitimate development environment setup but involves powerful shell operations such as process termination and dependency installation, warranting caution.

Points d'attention
  • Uses shell commands to install dependencies (poetry install, pnpm install), which execute package scripts and could introduce supply chain risk.
  • Uses `kill -9` on ports 8001-8008 without confirmation, which could terminate unrelated processes.
  • Copies .env files, which may contain secrets, to a new worktree within the same repository.

Exemples

Create worktree named AutoGPT7
Set up a new worktree called AutoGPT7 from the dev branch
Default worktree setup
I need to work on this branch in isolation — set up a worktree for it.
Remove worktree
Remove the AutoGPT7 worktree and clean up.

name: worktree description: Set up a new git worktree for parallel development. Creates the worktree, copies .env files, installs dependencies, and generates Prisma client. TRIGGER when user asks to set up a worktree, work on a branch in isolation, or needs a separate environment for a branch or PR. user-invocable: true args: "[name] — optional worktree name (e.g., 'AutoGPT7'). If omitted, uses next available AutoGPT<N>." metadata: author: autogpt-team version: "3.0.0"

Worktree Setup

Create the worktree

Derive paths from the git toplevel. If a name is provided as argument, use it. Otherwise, check git worktree list and pick the next AutoGPT<N>.

ROOT=$(git rev-parse --show-toplevel)
PARENT=$(dirname "$ROOT")

# From an existing branch
git worktree add "$PARENT/<NAME>" <branch-name>

# From a new branch off dev
git worktree add -b <new-branch> "$PARENT/<NAME>" dev

Copy environment files

Copy .env from the root worktree. Falls back to .env.default if .env doesn't exist.

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

Install dependencies

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

Replace <NAME> with the actual worktree name (e.g., AutoGPT7).

Running the app (optional)

Backend uses ports: 8001, 8002, 8003, 8005, 8006, 8007, 8008. Free them first if needed:

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

CoPilot testing

SDK mode spawns a Claude subprocess — won't work inside Claude Code. Set CHAT_USE_CLAUDE_AGENT_SDK=false in backend/.env to use baseline mode.

Cleanup

# Replace <NAME> with the actual worktree name (e.g., AutoGPT7)
git worktree remove "$(dirname "$(git rev-parse --show-toplevel)")/<NAME>"

Alternative: Branchlet (optional)

If branchlet is installed:

branchlet create -n <name> -s <source-branch> -b <new-branch>
Skills similaires