Run a git command when entering a directory

Over on Mastodon, Eric Meyer asked:

A bash script I want: whenever I cd into a repository directory from a directory outside that repository, git branch is fed to stdout, so I can see all the local branches. Does anything like this exist?

This is easily done by replacing the built-in cd command with a custom shell function. Simply add the following code to your .bashrc or .zshrc:

cd () {
  local _arg="$1"

  builtin cd "$_arg" || exit 1
  if [ -d .git ]; then
    echo "Branches in $(pwd):"
    git branch
  fi
}

Hope that helps, Eric!

So much to learn!

Find easily digestible pieces of DevOps experience in your inbox on Monday morning. Join 124 DevOps people who are already getting my News From the Server Room every week!

We keep your data private and share your data only with third parties that make this service possible. Read our full Privacy Policy.