Skip to content

Instantly share code, notes, and snippets.

@lludlow
Created October 12, 2017 20:04
Show Gist options
  • Save lludlow/20e6be9ff8d4149752c52aa064fbc85c to your computer and use it in GitHub Desktop.
Save lludlow/20e6be9ff8d4149752c52aa064fbc85c to your computer and use it in GitHub Desktop.
update fork from upstream origin
## Checkout all branches from remote as tracking branches.
UPSTREAM=$1
MYREPO=$2
usage() {
echo "Usage:"
echo "$0 <upstream-remote> <target-remote>"
echo ""
echo "Example which ensures remote named 'maxandersen' have all the same branches and tags as 'origin'"
echo "$0 origin madbuda"
exit 1
}
if [ -z "$UPSTREAM" ]
then
echo Missing upstream remote name.
usage
fi
if [ -z "$MYREPO" ]
then
echo Missing target remote name.
usage
fi
read -p "1. This will setup '$MYREPO' to track all branches in '$UPSTREAM' - Are you sure ?" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
for brname in `git branch -r | grep "$UPSTREAM" | grep -v master | grep -v HEAD | sed -e 's/.*\///g'`; do git branch --track $brname $UPSTREAM/$brname ; done
fi
read -p "2. This will push all local branches and tags into '$MYREPO' - Are you sure ?" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
git push --all $MYREPO
git push --tags $MYREPO
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment