Used this when moving away from a git repository that it wasn’t possibly to transfer. Unfortunately the repository had a lot branches that I wanted to keep a copy of just in case.
So I used the following bash script to pull them all down locally so I had a backup.
#!/bin/bash
# Clone the repository
git clone [email protected]:username/repository.git
# Navigate into the repository
cd repository.git
# Fetch all branches
git fetch --all
# For each remote branch
for branch in `git branch -r | grep -v HEAD`;do
# Get the name of the branch without the "origin/" prefix
name=`echo $branch | cut -d/ -f2-`
# Create and checkout local branch
git checkout -b $name $branch
done
Just replace username
and repository
with the actual username and repository name.
Save this script to a .sh
file, give it execute permissions with chmod +x scriptname.sh
, and then run it with ./scriptname.sh
.