30
How to display git branches as a tree in CLI
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:
[user]
email = your@email
name = Your Name
after those lines, you can add:
[alias]
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.