Show git Branch from Command Line

By  on  

Whether it's simply submitting pull requests or being snobby enough to use vim as a text editor, web developers and designers spend an awful lot of time working from command line.  If you do work with git, you know it's important to keep track of your branches, especially when it comes to knowing which branch you're currently on.

You could frequently execute git branch to ensure you're on the branch you'd prefer to be on, but that's a lot of unnecessary repetition.  After all, with the amount of work we do from command line, there should be a way to always display that information...and there is.  Let me show you how to always show the current checked out branch within the command line display!

Start by opening your .bash_profile file -- this file is typically used to create command line aliases and set environment variables.  Add the following to the .bash_profile file:

# Slightly modified from: https://coderwall.com/p/fasnya/add-git-branch-name-to-bash-prompt

# Show current git branch in command line
parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "

PS1 represents the leading text display before each line execute in the command line.  With the directive above your command line will display like:

Show Git Branch

Always seeing the current branch name (if any) is a time saver and blanket of security for those of use who use git for our projects.  Do yourself the favor of adding this tiny snippet to your .bash_profile and thank me later!

Are you a Windows user? Check out posh-git to achieve the same functionality!

Recent Features

  • By
    I’m an Impostor

    This is the hardest thing I've ever had to write, much less admit to myself.  I've written resignation letters from jobs I've loved, I've ended relationships, I've failed at a host of tasks, and let myself down in my life.  All of those feelings were very...

  • By
    Responsive Images: The Ultimate Guide

    Chances are that any Web designers using our Ghostlab browser testing app, which allows seamless testing across all devices simultaneously, will have worked with responsive design in some shape or form. And as today's websites and devices become ever more varied, a plethora of responsive images...

Incredible Demos

  • By
    How to Create a Twitter Card

    One of my favorite social APIs was the Open Graph API adopted by Facebook.  Adding just a few META tags to each page allowed links to my article to be styled and presented the way I wanted them to, giving me a bit of control...

  • By
    MooTools Clipboard Plugin

    The ability to place content into a user's clipboard can be extremely convenient for the user. Instead of clicking and dragging down what could be a lengthy document, the user can copy the contents of a specific area by a single click of a mouse.

Discussion

  1. Lassi Uosukainen

    Why not use the shellthat comes with git and includes this by default?

    • The GitBash that is included with Git is a non-posix system that for anyone like myself who knows a bit about linux shell would drive us crazy as certain simple functions don’t work. Better to just use a real terminal.

      And oh-my-zsh is totally the way to go. Command completion, NVM status, VirtualEnv status + git branches… win win!

  2. Better yet, just install oh-my-zsh and add an awesome theme to it and you can see the path + branch + if you have changes or not.

    The repo: https://github.com/robbyrussell/oh-my-zsh

    The theme I currently use (you may need to install some fonts to get to work) https://cloud.githubusercontent.com/assets/2618447/6316862/70f58fb6-ba03-11e4-82c9-c083bf9a6574.png

  3. Clement

    Why not using « Oh My ZSH »?

  4. Can you explain what the regular expression: '/^[^*]/d' -e 's/* \(.*\)/ (\1)/ does?

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!