TL;DR: Werk aan meerdere branches tegelijk zonder te switchen!
cd /Users/sarkout/projects/prive/mahmoud-consultancy
./setup-worktrees.sh
Dit maakt 3 worktrees aan:
../mahmoud-consultancy-glorylabs โ GloryLabs website werk../mahmoud-consultancy-sessions โ InterimPlaza sessions../mahmoud-consultancy-kb โ Knowledge Base development# Open elk worktree in apart window
code /Users/sarkout/projects/prive/mahmoud-consultancy-glorylabs
code /Users/sarkout/projects/prive/mahmoud-consultancy-sessions
code /Users/sarkout/projects/prive/mahmoud-consultancy-kb
Terminal 1: GloryLabs
cd /Users/sarkout/projects/prive/mahmoud-consultancy-glorylabs
cd website/glorylabs
# Edit, test, deploy
git add .
git commit -m "feat: update website"
git push
Terminal 2: InterimPlaza Sessions
cd /Users/sarkout/projects/prive/mahmoud-consultancy-sessions
./run-sessions-auto.sh
# Let sessions run while you work on other stuff
Terminal 3: Knowledge Base
cd /Users/sarkout/projects/prive/mahmoud-consultancy-kb
cd backend/
# Develop KB features
# List worktrees
git worktree list
# Add worktree manually
git worktree add -b <branch-name> <path> <base-branch>
# Remove worktree
git worktree remove <path>
# Cleanup
./cleanup-worktrees.sh
Zonder worktrees:
git checkout feature-1 # Work on feature 1
git checkout feature-2 # Lose feature 1 context
git checkout main # Lose feature 2 context
# Constant switching, context loss
Met worktrees:
Terminal 1: cd mahmoud-consultancy-glorylabs # Feature 1
Terminal 2: cd mahmoud-consultancy-sessions # Feature 2
Terminal 3: cd mahmoud-consultancy-kb # Feature 3
# All active simultaneously!
# Terminal 1: Deploy GloryLabs
cd ../mahmoud-consultancy-glorylabs
cd website/glorylabs
./deploy.sh
# Terminal 2: Run InterimPlaza sessions (ondertussen!)
cd ../mahmoud-consultancy-sessions
./run-sessions-auto.sh
# Terminal 1: Website updates
cd ../mahmoud-consultancy-glorylabs
# Terminal 2: Backend API development
cd ../mahmoud-consultancy-kb
# Terminal 3: Frontend components
cd ../mahmoud-consultancy-sessions
# Try approach A in one worktree
cd ../mahmoud-consultancy-glorylabs
# Try approach B in another worktree
cd ../mahmoud-consultancy-kb
# Compare results, pick best approach
./cleanup-worktrees.sh
Of manually:
# List worktrees
git worktree list
# Remove one
git worktree remove ../mahmoud-consultancy-glorylabs
# Prune stale references
git worktree prune
# Check welke worktree de branch heeft
git worktree list
# Remove die worktree eerst
git worktree remove <path>
cd <worktree>
git status
git add .
git commit -m "wip: save work"
# Of
git stash
# Prune stale references
git worktree prune
# Repair if needed
git worktree repair
Lees WORKTREE_STRATEGY.md voor:
Voor jouw project, recommended:
# 1. Setup worktrees
./setup-worktrees.sh
# 2. Open VS Code windows
code ../mahmoud-consultancy-glorylabs # Voor GloryLabs website
code ../mahmoud-consultancy-sessions # Voor InterimPlaza sessions
code . # Main repo voor algemeen werk
# 3. Work in parallel
# - GloryLabs deployment in worktree 1
# - InterimPlaza sessions in worktree 2
# - Quick fixes in main repo
Ready? Run ./setup-worktrees.sh om te beginnen!
Reacties