Awesome
git-igitt
Interactive Git terminal application to browse and visualize Git history graphs in a comprehensible way, following different branching models.
git-igitt is based on git-graph. 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.
Decide for yourself which graph is the most comprehensible. :sunglasses:
:warning: This project is still in a very early stage. For reporting issues, see here :warning:
Features
- View structured graphs directly in the terminal
- Interactively browse the Git history and view commits and diffs
- Pre-defined and custom branching models and coloring
- View old and new file versions without checking them out, with syntax highlighting!
Installation
Pre-compiled binaries
- Download the latest binaries for your platform
- Unzip somewhere
- Optional: add directory
git-igitt
to yourPATH
environmental variable
Using cargo
In case you have Rust installed, you can install with cargo
:
cargo install git-igitt
Usage
For basic usage, run the following command:
git-igitt
Note: git-graph needs to be on the PATH, or you need use the full path to git-graph:
C:/path/to/git-igitt/git-igitt
If git-igitt is started inside a Git repository's folder, this repository will be displayed. Otherwise, a file dialog will appear that let's you select a repository.
Get help
To view key bindings and help in the application, press H
or F1
.
For the full CLI help describing all options, use:
git-igitt -h
git-igitt --help
Branching models
By default, git-igitt assumes the git-graph
branching model. To change the branching model in the application, press M
. You can then set the model for the current session with Enter
, or permanently for the repository with P
.
Alternatively, start git-graph with a specific model, e.g. simple
:
git-igitt --model simple
Or set the model for the repository in the current path permanently:
git-igitt model simple
For details on branching models, styles and commit formatting, see the git-graph manual.
Custom branching models
Branching models are configured using the files in APP_DATA/git-graph/models
(git-igitt shares these files with git-graph).
- Windows:
C:\Users\<user>\AppData\Roaming\git-graph
- Linux:
~/.config/git-graph
- OSX:
~/Library/Application Support/git-graph
File names of any .toml
files in the models
directory can be selected in the application or used with parameter --model
, or via sub-command model
. E.g., to start with a branching model defined in my-model.toml
, use:
git-igitt --model my-model
For details on how to create your own branching models see section Custom branching models of the git-graph manual.
Limitations
- Summaries of merge commits (i.e. 1st line of message) should not be modified! git-graph needs them to categorize merged branches
- Currently, the history can only be browsed. So far, no Git commands are implemented.
- Supports only the primary remote repository
origin
- Does currently not support "octopus merges" (i.e. no more than 2 parents)
- No support for shallow clones due to missing feature in underlying library
libgit2
- Syntax highlighting may be slow for large files (turn on/off by typing
S
)
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.