Skip to content

Instantly share code, notes, and snippets.

@Shashank085236
Forked from steve-jansen/git-update
Created April 5, 2018 18:05
Show Gist options
  • Save Shashank085236/24fc4379a4734ed27cc37a0fc9268165 to your computer and use it in GitHub Desktop.
Save Shashank085236/24fc4379a4734ed27cc37a0fc9268165 to your computer and use it in GitHub Desktop.
A custom script for git to stash any working changes, checkout master, pull origin master, checkout your working branch, rebase master, and unstash your working changes
#!/bin/bash
stash() {
# check if we have uncommited changes to stash
git status --porcelain | grep "^." >/dev/null;
if [ $? -eq 0 ]
then
if git stash save -u "git-update on `date`";
then
stash=1;
fi
fi
}
unstash() {
# check if we have uncommited change to restore from the stash
if [ $stash -eq 1 ]
then
git stash pop;
fi
}
stash=0;
stash;
branch=`git branch | grep "\*" | cut -d " " -f 2-9`;
if [ "$branch" == "master" ]
then
git pull origin master;
else
git checkout master;
git pull origin master;
git checkout "$branch";
git rebase master;
fi
unstash;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment