I am using the command line version of Git and gitk. I want to see the full version tree, not just the part that is reachable from the currently checked out version. Is it possible?
5 Answers
if you happen to not have a graphical interface available you can also print out the commit graph on the command line:
git log --oneline --graph --decorate --all
if this command complains with an invalid option --oneline, use:
git log --pretty=oneline --graph --decorate --all
-
7who needs gitk when we have gitl! alias gitl='git log --oneline --graph --decorate --all' – Thunder Rabbit Feb 05 '13 at 01:30
-
11`alias gl='git log --oneline --graph --decorate --all'`. Why type more than needed ;) – Dana Woodman Nov 18 '13 at 21:03
-
I have hope command line abbreviations were invented before tab completion. They only benefit those who use those commands a lot and those with crazy memories. – aaaaaa Dec 18 '17 at 17:33
When I'm in my work place with terminal only, I use:
git log --oneline --graph --color --all --decorateWhen the OS support GUI, I use:
gitk --allWhen I'm in my home Windows PC, I use my own GitVersionTree
- 6,067
- 4
- 34
- 33
-
Perfect answer for me. My OS supports GUI so second option is my way to go but let`s say I just wanna peek the graph from command line very quickly : is there some way to avoid typing all of those switches from the first version, or you just re-type them all the time ? Thank you. – rchrd May 15 '20 at 23:08
-
1@rchrd I would set them as alias by running `git config --global alias.ver "log --oneline --graph --color --all --decorate"` and only need to type `git ver` thereafter. – checksum May 15 '20 at 23:58
You can try the following:
gitk --all
You can tell gitk what to display using anything that git rev-list understands, so if you just want a few branches, you can do:
gitk master origin/master origin/experiment
... or more exotic things like:
gitk --simplify-by-decoration --all
- 415,589
- 70
- 403
- 320
There is a very good answer to the same question.
Adding following lines to "~/.gitconfig":
[alias]
lg1 = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
lg = !"git lg1"
- 1
- 1
- 11,213
- 12
- 46
- 66
If you don't need branch or tag name:
git log --oneline --graph --all --no-decorate
If you don't even need color (to avoid tty color sequence):
git log --oneline --graph --all --no-decorate --no-color
And a handy alias (in .gitconfig) to make life easier:
[alias]
tree = log --oneline --graph --all --no-decorate
Only last option takes effect, so it's even possible to override your alias:
git tree --decorate
- 487
- 4
- 9