digit - learn git by visualizing it
Digit shows a realtime visual representation of a git repo structure, making it easier to understand how git works and what is the effect of each and every git command you run.
Digit is meant to be a learning tool, developed for our mid-level git workshop (http://www.optionfactory.net/courses/details/Git/). As such, it is not designed to scale to large repositories.
How does it look like
- monitors a local git repo
- realtime updates using fsnotify and websockets
- optionally monitors a second repo to experiment with remotes, push, pull, fetch, etc
- shows git graph, including unreachable nodes
- shows references: tags, branches, HEAD, stash pointers
- commit metadata in tooltip
- display current repo status (as in "output of
- visualizes node ancestry (for reachability)
Digit requires git to be installed on your machine
- Linux amd64 386 (tested)
- Windows amd64 386 (test in progress)
- OS X amd64 (tested)
- Others: possibly, let us know: see release
Reachability and commit metadata
Local and remote repo
digit [--bind-to <bind-address>:<bind-port>] local_repo_path [origin_repo_path]
and point your browser to http://localhost:9000 (or any other address specified in --bind-to)
Both paths must reside on the local filesystem (no network support yet).
Building from source
This repo uses a submodule in embedded_data/graph-algorithm.
When cloning, make sure to use --recursive in order to properly initialize the submodule.
The build system relies on docker and GNU Make.
- make local: builds for the local os/arch
- make all: builds for all architectures
- just a learning aid
- not meant to scale (tested with repos with a couple hundred commits)
- Francesco Degrassi
- Davide Salvador
To Wei Wang: several ideas taken from Explain Git With D3