Showing Git branch structure
Perhaps what you want is --simplify-by-decoration
option, see git log documentation:
--simplify-by-decoration
Commits that are referred by some branch or tag are selected.
So it would be
git log --graph --simplify-by-decoration --all
or following VonC answer
git log --graph --simplify-by-decoration \
--pretty=format:'%Cred%h%Creset-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' \
--abbrev-commit --date=relative
I am not sure about what you mean by "branch structure".git log
can help visualize the branches made through commits (See this blog post):
[alias]
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
But if you only wants the different HEAD branches, you could try something along the lines of:
heads = !"git log origin/master.. --format='%Cred%h%Creset;%C(yellow)%an%Creset;%H;%Cblue%f%Creset' | git name-rev --stdin --always --name-only | column -t -s';'"
(using the column command
, and here only for commits since the last origin/master
commit)
Note: Jakub Narębski recommands adding the option --simplify-by-decoration
, see his answer.