Git “feature branch” alias

git aliases are useful command-line shortcuts to save a minute or two here and there while working with your version-controlled source code (or other data).

Here’s one I’ve been using recently in case it saves you time too. It creates and checks out a new branch based on the latest code in the configured HEAD / upstream branch on the origin remote.

To use it, just add the following line to your `~/.gitconfig`

[alias]
        default = "!git remote show origin | grep 'HEAD branch:' | cut -d ' ' -f 5"
        fb = "!git fetch origin && git checkout -t origin/$(git default) -b"

To use this, you can run these aliased commands in a repository directory:

  • git default to get the default remote branch.
  • git fb try/some-new-feature to create a new feature branch based on the remote default branch. (fb is short for “feature branch,” of course).

EDITED

  • 2022-12-30 to add the separate default alias I’ve been using as well.
  • 2020-07-21 to continue to work with repositories that have moved away from calling the default branch master (Github is changing the default).

Keep Reading


Comments

2 responses to “Git “feature branch” alias”

  1. Love these shortcuts. Jeff, one question: what does the ! up front do?

    1. jeffblog Avatar

      Apologies, Lance. I thought I’d replied to this!

      The `!` at the beginning of a git alias means to run the entirety of the command “externally” (as opposed to being a subcommand of git).

      I use it here because this is a composition of more than one git command.

Leave a Reply to Lance Cancel reply

Your email address will not be published. Required fields are marked *