Skip to content
Learn git by visualizing it
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets :enh: respond on /, print URL on start, websocket URL dependent on or… Jul 27, 2016
embedded-data
git
http
screenshots
watch
.gitignore
.gitmodules
CONTRIBUTING.md
LICENSE.md
Makefile
README.md
index.template
main.go

README.md

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

Main interface

Features

  • 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 git status")
  • visualizes node ancestry (for reachability)

Binary downloads

Digit requires git to be installed on your machine

More screenshots

Reachability and commit metadata

Reachability and commit metadata

Local and remote repo

Local and remote repo

Usage

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

Known Limitations

  • just a learning aid
  • not meant to scale (tested with repos with a couple hundred commits)

Authors

  • Francesco Degrassi
  • Davide Salvador

Thanks

To Wei Wang: several ideas taken from Explain Git With D3

You can’t perform that action at this time.