git-forest man page
git-forest — display the commit history forest
git-forest [-a] [--no-rebase] [--style=number] [--sha] [--svdepth=depth] [rev-list-options] [refspec...]
git-forest is a command-line zero-lookahead git repository history visualizer with Unicode output with a bit of gitk resemblance.
Why another program?
The tree visualization of gitk is very useful, but there were (git 1.5.4 timeframe) no decent visualizers that can run in a console window, without the need to have X around (which gitk depends on). tig has numerous limitations, it cannot display octopus merges or octopus branching. As of git 1.5.6, there are still no other Unicode-output programs known to me.
A bit of internals
git-forest originally was a zero-lookahead visualizer, i.e. branches were accomodated when they have first been seen. Since mid-June 2008, git-forest has a lookahead tunable that controls how long an inter-merge vine (a branch in the graphical sense) can be.
Display author for each commit.
Do not show the rebase pseudo-refs.
Use single-line visuals (default).
Use double-line visuals.
Use specific rounded Unicode visuals for edges; glyphs might only be available with X11 terminals and appropriate fonts.
Use single bold-line visuals. Not readily usable with VGA console fonts without special unimaps.
Display (abbreviated) SHAs for each commit.
This option controls the maximum length of merge subvines. It defaults to 2.
All other options and arguments are passed down to git-log. Commonly useful options are --all and --topo-order.
git-forest --all | less -RS git-forest origin/master | less -RS
This tool does not try to minimize the empty space between branches like gitk does. Take it as a feature.