Last Updated: February 25, 2016
· murphyrandle

Git beefy rebase and push alias

The workflow I have on my current project has me constantly repeating the commands:

git checkout master ; git pull ; git checkout (working branch) ; git rebase ; git push origin (working branch name)

This was getting a bit tedious. This link:
Kindly shows how to use variables in a git alias.

This way we can set up an alias to do the whole messy command chain for us. But first, to make pushing a bit easier, follow the directions on this post:

And then make a new alias in your ~/.gitconfig:

superupdate = !CURRENTBRANCH=$(git symbolic-ref --short HEAD) && echo Currently on $CURRENTBRANCH - switching to master && git checkout master && git pull && echo Going back to $CURRENTBRANCH && git checkout "$CURRENTBRANCH" && git rebase master && git push

If you want to get really cool after this you can add a shell script to open a pull request in thew browser (this code is mac-specific, but surely can be adapted to any platform.) I'm using ZSH as my shell here.

alias gitpullrequest="git superupdate; open -a Google\ Chrome \"\""

You've got to replace REPOSITORY and BRANCH with the appropriate URL pieces. But once that's done, all should work dandy!