-
-
Save rud/106620 to your computer and use it in GitHub Desktop.
#!/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 |
@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.
.. 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 1
s 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.
you could use just "git pull --rebase origin master" on your custom branch