The Monospace Mentor Blog

Run a git command when entering a directory

Posted in Learning on

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!

💬 If you'd like to discuss this article, the best place for it is our DevOps community forum!

Feel free to 👉 share its link with your own thoughts.

Subscribe to my newsletter

Get updates on my courses, content from the Monospace Mentor community and my view on current DevOps topics delivered right to your inbox.