Chaining Git commands

Posted in Development and Git

Something I like to do to fill the time while waiting for tests to run (and hopefully pass!) on a branch that I’m going to merge to master is write a chain of Git commands.

Here’s an example. I use GitFlow (GitHub Flow didn’t quite stick) so here’s how I tidy up after a hotfix:

  1. Jump from my hotfix branch back to master, where the fix has been merged to on the remote
  2. Pull the fix down to keep my local master in sync
  3. Delete the local hotfix branch, now that the work’s in master
  4. Jump to develop with a view to merging the fix over there
  5. Merge master into develop
  6. Push develop to its remote namesake to avoid any potential remote merge conflicts
  7. Fetch the remote repo and prune any dead branches up there

Here’s what the command would look like:

git checkout master && git pull && git branch -d hotfix/fixing-a-thing && git checkout develop && git merge master && git push && git fetch -p

So all you’ve got to do is write && between each command and you can get Git to do a whole bunch of things in sequence.

Note: I could make this an Alias in my .gitconfig file, but doing it longhand that feels better.

Get them delivered!

If you enjoyed this and want all the latest articles delivered to your inbox every month, pop your email in the form below.

I don’t collect any data on when, where or if people open the emails I send them. Your email will only be used to send you newsletters and will never be passed on. You can unsubscribe at any time.

More posts

Here are a couple more posts for you to enjoy. If that's not enough, have a look at the full list.

  1. Text snippets on Apple devices

    I’ve been using Apple’s built-in Text Replacement instead of TextExpander for a while now. It’s pretty basic, but it’s free and it does the job.

  2. The right way to use break tags in HTML

    Break tags are often misused. I’ll demo some markup patterns to avoid them, and reveal the one and only legitimate use case I can think of.