How can I show the name of branches in `git log`?

How can I show the name of branches in the output of git log?

For example with, git log --graph --all I get a nice overview of the commits, but get confused which line is master, and which is my branch for example.


Solution 1:

Try the decorate option.

git log --graph --all --decorate

It annotates commits which are pointed to by tags or branches.

Solution 2:

I was looking for something similar to this - but wanted to know what branch a change was made. Hopefully this answer will be of use to others also.

I'm investigating a risk with blackbox encryption, where a repo and it's branches/tags may become unavailable to current admins when enough users leave a project and the keyrings directory has not been religiously based off of master)

I found that the answer below was helpful where the keyrings directory was not updated from master...

Basically adding --source was what I needed to show the branches/tags. Adding --name-only will also show which file was actually changed.

cd /path/to/repo-that-uses-blackbox-encryption
git log --graph --all --decorate --source --name-only keyrings

Another useful answer: How to show git log with branch name

Solution 3:

If you happen to be using oh-my-zsh as your terminal then a bunch of git aliases are available. All of which can be seen at their repo oh-my-zsh/plugins/git. If you don't use this terminal, then you just can grab the aliases and paste the ones you like into your own environment.

The accepted answer presents the git log --graph --all --decorate command, which is available as the glgga alias in oh-my-zsh.

Personally I prefer the glods alias which translates to:

git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short