mlange-42 / git-graph

Command line tool to show clear git graphs arranged for your branching model
MIT License
538 stars 21 forks source link
command-line command-line-tool git git-flow git-graph gitlab-flow graph rust

git-graph

Tests GitHub Crate MIT license

A command line tool to visualize Git history graphs in a comprehensible way, following different branching models.

The image below shows an example using the GitFlow branching model for a comparison between graphs generated by git-graph (far left) versus other tools and Git clients.

GitFlow was chosen for its complexity, while any other branching model is supported, including user-defined ones.

Graph comparison between tools

Decide for yourself which graph is the most comprehensible. :sunglasses:

If you want an interactive Git terminal application, see git-igitt, which is based on git-graph.

Features

Installation

Pre-compiled binaries

  1. Download the latest binaries for your platform
  2. Unzip somewhere
  3. Optional: add directory git-graph to your PATH environmental variable

Using cargo

In case you have Rust installed, you can install with cargo:

cargo install git-graph

Usage

For detailed information, see the manual.

For basic usage, run the following command inside a Git repository's folder:

git-graph

Note: git-graph needs to be on the PATH, or you need use the full path to git-graph:

C:/path/to/git-graph/git-graph

Branching models

Run git-graph with a specific model, e.g. simple:

git-graph --model simple

Alternatively, set the model for the current repository permanently:

git-graph model simple

Get help

For the full CLI help describing all options, use:

git-graph -h
git-graph --help

For styles and commit formatting, see the manual.

Custom branching models

Branching models are configured using the files in APP_DATA/git-graph/models.

File names of any .toml files in the models directory can be used in parameter --model, or via sub-command model. E.g., to use a branching model defined in my-model.toml, use:

git-graph --model my-model

For details on how to create your own branching models see the manual, section Custom branching models.

Limitations

Contributing

Please report any issues and feature requests in the issue tracker.

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.