Jake Worth

mgrim: Everything Updated All The Time

July 11, 20181 min read

My current favorite command line alias is mgrim, composed of four other aliases:

alias gmr='gco master && gpr && gco - && git rebase master'
alias grim='git rebase -i master'
alias mgrim='gmr && grim'

Here’s what this does (starting from a feature branch):

  • gmr - checkout the master branch (gco is a Hashrocket alias for git checkout. Pull from origin/master and try to put my commits in the right place in history (gpr is a Hashrocket alias for git pull --rebase). Checkout my feature branch. Fast-forward my branch to the top of master (as though I had branched off master’s current HEAD.
  • grim - Open an interactive rebase to cleanup everything on my branch (see ‘Squash Your PR’)

I use feature branches for work, and use this command right before merging into master. The result? I’m always forced to look at my branch history and squash it down to the minimum, which is good for everyone (including future me). And, I never have a merge conflict with master.


Each week, I write an email about React. It's a collection of quotes, news, conference talks, and documentation curated be me to help you get up to speed on this exploding ecosystem. Join my subscribers today by subscribing to React Explained.


Jake Worth

I'm Jake Worth, a web developer. Home About Now Newsletter