Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- I="\e[96m"
- E="\e[90m"
- echo -e "🤖$I starting sync.. $E";
- CURRENT_BRANCH="`git rev-parse --abbrev-ref HEAD`"
- STASH_RESULT="`git stash push -u -m AUTO_STASH | grep Saved`"
- if [ -n "$STASH_RESULT" ]; then
- echo -e "🤖$I stashed changes to AUTO_STASH $E";
- fi
- git fetch --all -p
- LOCAL_BRANCHES=`git branch | cut -c 3-`;
- BRANCHES_WITH_REMOTES=`git for-each-ref --format '%(refname:short):%(upstream:short)' 'refs/heads' | grep -v ':$'`;
- echo $BRANCHES_WITH_REMOTES | while IFS=: read local remote; do
- echo -e "🤖$I running git checkout $local $E"
- git checkout $local || return 1;
- echo -e "🤖$I running git pull $E"
- git pull;
- done
- echo $LOCAL_BRANCHES | while IFS=: read local; do
- echo -e "🤖$I running git checkout $local $E"
- git checkout $local || return 1;
- echo -e "🤖$I merging $local with master $E"
- git merge master || return 1;
- done
- echo -e "🤖$I checkingout starting branch $CURRENT_BRANCH $E"
- git checkout $CURRENT_BRANCH
- if [ -n "$STASH_RESULT" ]; then
- git stash pop;
- else
- echo -e "🤖$I no changes found. skipping stash pop $E";
- fi
Add Comment
Please, Sign In to add comment