How to display git branches as a tree in CLI

Marcin Wosinek's photo
Marcin Wosinek

Published on Jul 23, 2021

2 min read

An interesting feature of graphical tools for git is showing a repository tree with all the branches. In this article, I will show how to achieve something similar in the command line.


With the alias I'm using, I can run git tree and see something like:

* 8dc4b3c (HEAD -> main, origin/main, origin/HEAD) add esbuild change
* 4276744 add esbuild logo
* 2dcfa82 import html in esbuild
| * 3d05f80 (solution) script
| * d11dcad update script to cover all 3 gettign started sections
* 817f5bb starting poing
| * de5c7c6 (final-state) move to mode non
* 800213b (origin/final-state) add contact-list component
* 97c8010 whole header

It's pretty much everything I need to have an overview of the project, for example:

  • After doing git fetch --all --prune, I can see what is happening on the remote
  • I can see where is my branch in relation to main or other branches
  • In the middle of rebases, I can see how far I already got
  • I can find all commits - especially useful if I search for one I want to cherry-pick


The command that is used, it's git log with some additional flags:

$ git log --oneline --graph --decorate --all

You could type it every time you need it, but for me, it's an everyday command & I hardly ever want to run it differently - it's always the same one, so it makes sense to define an alias for it.


For defining alias, you can use your~/.gitconfig. If the file is missing, you can create it. It's the same file where git saves your name & email, so most likely, you have at least something like:

        email = your@email
        name = Your Name

after those lines, you can add:

        tree = log --oneline --graph --decorate --all

If you already have some aliases, you only need to add the tree = ... to the alias section.

Then, you will have git tree available.


We have seen how to set up a git tree alias to improve your git CLI experience.

Did you find this article valuable?

Support Marcin Wosinek by becoming a sponsor. Any amount is appreciated!

Learn more about Hashnode Sponsors
Share this