Tig is a terminal-based interface for version control systems that functions as an interactive visual layer over standard command-line operations. It provides a text-based environment for navigating commit history, managing staging areas, and inspecting file changes directly within the terminal. By utilizing a split-view layout, the application allows users to view logs, diffs, and status information simultaneously for efficient code analysis.
The tool distinguishes itself through a state-driven navigation model that processes piped output from version control utilities into structured, colorized information panels. Users can extend the interface by defining custom shell commands that leverage the current repository state, such as specific commit identifiers or file paths, to automate repetitive development workflows. This configuration-driven approach allows for the mapping of user-defined actions to keyboard shortcuts and interface preferences.
Beyond basic navigation, the application supports comprehensive repository management, including the ability to stage or unstage changes at the file or chunk level and resolve merge conflicts. It includes robust filtering capabilities for commit logs, branches, and tags, enabling users to isolate specific revisions or timeframes. The interface is highly customizable, with settings managed through environment variables and external configuration files to suit individual terminal environments.