Created — forked from reinh/

Embed URL


SSH clone URL

You can clone with HTTPS or SSH.

Download Gist
1 2 3 4 5 6 7 8 9
#!/bin/sh -x
# Exit if any error is encountered:
set -o errexit
# git name-rev is fail
CURRENT=`git branch | grep '\*' | awk '{print $2}'`
git checkout master
git pull --rebase origin master
git checkout ${CURRENT}
git rebase master

you could use just "git pull --rebase origin master" on your custom branch

rud commented

@lauiro: true, but I'm doing this multiple times every day, so at least an alias for repeated commands makes sense. On top of that, this hack-script means the master branch is correctly tracking origin/master, so when it is time to ship the changes, nothing special has to be done.

rud commented

.. as opposed to the local master branch not being updated when you do "git pull --rebase origin master" while positioned on a local branch. It can get a tiny bit confusing when your local feature branch diverges from the local master, so that's why both master and feature branc are updated by this script.

agree, I have in .gitconfig:
up = !sh -c 'CUR=$(git branch | grep ^\*) && git checkout ${1:-"master"} && git pull && git checkout ${CUR:2} && git rebase ${1:-"master"}' -

but I do not use it often.
(rebasing by default: git config --global branch.master.rebase true)

You can use set -e at the top of your script and clean up the || exit 1s at the end of each line.


Hi joefiorini,

Thank you for the tip, I've updated the gist as suggested. Much cleaner that way. Aah, proper error handling.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.