git-forest(1)

πŸ“¦
this version Β· 3 versions
, in fedora 43, fedora 44

πŸ’– git-forest β€” display the commit history forest πŸ’–

okay bestie, sit down, hydrate, because we're about to look at your git history in a way that's actually pretty. this is git-forest, a lil tool from the hxtools family (yes, the whole hxtools crew is iconic, more on that in a sec) and it's here to show you your commit history as an actual forest. trees, vines, merges, the whole vibe. 🌳✨


✨ Name ✨

git-forest β€” display the commit history forest πŸ¦‹


🌸 Syntax 🌸

git-forest [-a] [--no-rebase] [--style=number] [--sha] [--svdepth=depth]
[rev-list-options] [refspec...]

πŸ’… Description πŸ’…

git-forest is a command-line zero-lookahead git repository history visualizer that outputs Unicode and gives you just a lil hint of gitk energy. it runs in your terminal, no X server required, no drama. πŸ‘‘

πŸŽ€ Why another program? πŸŽ€

the tree visualization in gitk is genuinely useful, no hate, but back in the day (we're talking the git 1.5.4 timeframe) there were no decent visualizers that could run in a console window without needing X around β€” and gitk depends on X, so that's a whole thing. πŸ™ˆ

and tig? bestie, tig has numerous limitations. it cannot display octopus merges. it cannot display octopus branching. nope. not the vibe.

and as of git 1.5.6, there were still no other Unicode-output programs known to the author. literally nobody else was doing it. main character energy fr fr. πŸ’€

🧚 A bit of internals 🧚

git-forest originally was a zero-lookahead visualizer β€” meaning branches were accommodated when they were first seen. like, when they showed up, they got placed. no planning ahead. πŸ’«

since mid-June 2008, though, git-forest has a lookahead tunable that controls how long an inter-merge vine (a branch in the graphical sense) can be. glow-up era. 🌈


πŸ”₯ Options πŸ”₯

  • -a β€” Display author for each commit. πŸ‘€
  • --no-rebase β€” Do not show the rebase pseudo-refs. πŸ™…β™€οΈ
  • --style=1 β€” Use single-line visuals (this is the default, bestie). βž–
  • --style=2 β€” Use double-line visuals. βž—
  • --style=10 β€” Use specific rounded Unicode visuals for edges; heads up though, the glyphs might only be available with X11 terminals and the appropriate fonts. πŸŒ€
  • --style=15 β€” Use single bold-line visuals. not readily usable with VGA console fonts without special unimaps. ⚠️
  • --sha β€” Display (abbreviated) SHAs for each commit. πŸ”‘
  • --svdepth=depth β€” This option controls the maximum length of merge subvines. it defaults to 2. πŸ“
  • everything else β€” All other options and arguments are passed down to git-log. the commonly useful ones are --all and --topo-order. 🫢

πŸ“ Examples πŸ“

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. πŸ’–

🌟 See also 🌟


okay that's the whole page, you ate it, periodt. this beauty came from hxtools, dated 2008-07-06 β€” go forth and visualize your commits, bestie, you're gonna look so good doing it πŸ’œβœ¨πŸŽ€

πŸ“¦ where this page comes from