Alternatives to tig
Browse Git history and stage changes in a terminal interface. The listings below can replace it for an important use case. Each note says what changes if you switch.
The original
tig
Browse Git history and stage changes in a terminal interface.
Replacements
Listings that take over the same core job as tig.
lazygit
A terminal interface for Git that makes staging chunks, interactive rebase and stashing things you actually do.
lazygit adds interactive rebase by moving commits in a list and stashing, ships as one static Go binary under MIT, and takes a session or two to learn.
GitUI
A terminal interface for git that is fast on huge repositories and controlled entirely from the keyboard.
GitUI adds line-level staging, revert and reset with context-based help, is MIT licensed and is designed to stay fast on large repositories.
Gitu
A terminal user interface for Git, written in Rust and inspired by Emacs Magit.
Gitu is a Rust terminal interface with a Magit-style workflow and keybindings, though it implements Magit features progressively and some are still missing.
Magit
A complete text-based Git interface that runs inside GNU Emacs.
Magit is a full keyboard-driven Git interface with advanced features and mnemonic keys, but it requires running inside GNU Emacs.
fugitive.vim
A Vim plugin that runs Git commands and handles staging, blame and diffs inside the editor.
fugitive.vim moves Git work into Vim, running any Git command via :Git with staging, blame and diff views, but it requires Vim familiarity.
Neogit
An interactive Git interface for Neovim, modelled on Emacs Magit.
Neogit provides a Magit-style keyboard-driven interface for staging and committing inside Neovim, so it requires Neovim rather than a plain terminal.
Also worth comparing
These listings name tig as their own alternative, so the relationship runs both ways.
Flog
A Git branch graph viewer plugin for Vim and Neovim that works with fugitive.
tig moves history browsing out of the editor into a standalone terminal interface and adds chunk-level staging without needing fugitive.
forgit
A shell plugin that makes common Git commands interactive through the fzf fuzzy finder.
tig provides a standalone terminal interface for browsing history and chunk-level staging instead of wrapping individual Git commands with fzf.
git-graph
A command-line tool that draws Git history graphs arranged according to your branching model.
tig adds chunk-level staging to terminal history browsing, so it goes beyond viewing, though it has no branching model specific graph layouts.
QGit
A Qt-based Git viewer for browsing revision history, patches and changed files.
tig moves history browsing into a GPL-2.0 terminal interface and adds chunk-level staging, but it needs a suitable terminal environment instead of a Qt window.
Serie
A terminal application that draws a detailed Git commit graph using the terminal's image display protocol.
tig is a GPL-2.0 terminal interface for browsing Git history that also supports chunk-level staging, needing only Git and a suitable terminal environment.
Similar software
Related functionality, not a direct replacement.
SourceGit
A fast desktop Git client for all three platforms that covers rebase, bisect, worktrees and LFS.
GitKraken Desktop
Visual Git client with a graph view, drag-and-drop branching and a merge editor.
Jujutsu
A version control system with a simpler model than git, which uses git repositories as storage so it works with existing projects and hosts.
Git
A free and open-source distributed version control system for projects of any size.