29 lines
828 B
Bash
29 lines
828 B
Bash
#!/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
|
|
|