Skip to content

Instantly share code, notes, and snippets.

@ptavares
Forked from yorammi/2repos-sync.sh
Created February 3, 2021 12:50
Show Gist options
  • Save ptavares/68ee4c8c224420ae73874b594c88a242 to your computer and use it in GitHub Desktop.
Save ptavares/68ee4c8c224420ae73874b594c88a242 to your computer and use it in GitHub Desktop.
Sync 2 remote repositories script - Just define the 3 variables (use export command for that!)
#!/bin/bash
# REPO_NAME=<repo>.git
# ORIGIN_URL=git@<host>:<project>/$REPO_NAME
# REPO1_URL=git@<host>:<project>/$REPO_NAME
rm -rf $REPO_NAME
git clone --bare $ORIGIN_URL
if [ "$?" != "0" ]; then
echo "ERROR: failed clone of $ORIGIN_URL"
exit 1
fi
cd $REPO_NAME
git remote add --mirror=fetch repo1 $REPO1_URL
if [ "$?" != "0" ]; then
echo "ERROR: failed add remote of $REPO1_URL"
exit 1
fi
git fetch origin --tags
if [ "$?" != "0" ]; then
echo "ERROR: failed fetch from $ORIGIN_URL"
exit 1
fi
git fetch repo1 --tags
if [ "$?" != "0" ]; then
echo "ERROR: failed fetch from $REPO1_URL"
exit 1
fi
git push origin --all
if [ "$?" != "0" ]; then
echo "ERROR: failed push to $ORIGIN_URL"
exit 1
fi
git push origin --tags
if [ "$?" != "0" ]; then
echo "ERROR: failed push tags to $ORIGIN_URL"
exit 1
fi
git push repo1 --all
if [ "$?" != "0" ]; then
echo "ERROR: failed push to $REPO1_URL"
exit 1
fi
git push repo1 --tags
if [ "$?" != "0" ]; then
echo "ERROR: failed push tags to $REPO1_URL"
exit 1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment