#!/bin/bash # Prune worktree references to remove any missing worktrees git worktree prune # List remote branches that start with 'origin/preprod' for branch in $(git branch -r | grep 'origin/preprod' | sed 's|origin/||'); do # Extract the directory name without 'preprod_' prefix dir_name=$(echo $branch | sed 's|^preprod_||') # Create the directory if it doesn't exist mkdir -p "../${dir_name}" # Add the worktree git worktree add "../${dir_name}" "origin/${branch}" || { echo "Failed to add worktree for branch ${branch}" continue } # Change to the new worktree directory and check out the branch cd "../${dir_name}" git checkout "${branch}" || { echo "Failed to checkout branch ${branch} in directory ${dir_name}" continue } cd - > /preprod/null done