Skip to content

@rud /hack.sh forked from reinh/hack.sh
Created

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
#!/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
@lauriro

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

@rud
Owner
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
Owner
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.

@lauriro

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)

@joefiorini

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

@rud
Owner

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.