Blog
Guides, comparisons and engineering notes about gitty and working with git in a terminal.
gitty 0.2.0: commit graph, conflict help, branches and a Files tab
gitty 0.2.0 adds a commit graph, conflict resolution, a branch picker, stashes, a Files tab, pull request badges, force push with lease and 12 themes.
How to resolve merge conflicts in the terminal
Resolve merge, rebase, cherry-pick and revert conflicts in gitty: keep a side per block, stage the file, then continue or abort with m.
How to read gitty's commit graph
What the dots, corners, heavy line and colours in gitty's commit graph mean, how to switch it to compact or off, and when it steps aside.
How to switch branches and stash changes in gitty
Switch, create, rename, delete and merge branches from gitty's picker, and stash, apply, pop and drop work without leaving the terminal.
How to force push safely with lease after an amend or rebase
Push after an amend or rebase: how gitty offers a force push with lease, what the question lists, and which branches it never force pushes.
See your branch's pull request from the terminal
gitty's top bar shows PR #<n> for the checked-out branch, coloured by state. How to set it up with gh, open the PR with R, and what to check.
Browse your working tree without reading your secrets
gitty's Files tab shows the working tree with git marks and a read-only viewer, and keeps files named like secrets unread until you press v.
Open gitty in a herdr popup
Install gitty's herdr plugin, bind it to a key, and open gitty in a popup on the focused pane's repository. What it installs and how to fix it.
How gitty draws the commit graph
How gitty lays out its commit graph: a port of lazygit's pipes, a streamed topological walk, spacer lines, and a fix for a merge at a branch tip.
What is a git TUI, and when should you use one?
A git TUI is a full-screen git client that runs inside your terminal. What it is, how it differs from a GUI, and when it is the better tool.
Install gitty on macOS and Linux
Install gitty with Homebrew, the shell installer, a prebuilt archive or crates.io, then check it runs. Needs git 2.30 or newer on your PATH.
Use a git TUI over SSH
A terminal git client works wherever you have a shell. How to run gitty on a remote machine and what to check before you do.
Keep a git TUI fast on very large repositories
Why git tools slow down on big repositories, how gitty tunes git and uses the commit-graph, and what to check if history feels slow.
The best git TUI clients compared
lazygit, tig, gitui and gitty compared on language, platforms and focus, using each project's own documentation. No benchmarks, just facts.
gitty vs lazygit
How gitty and lazygit differ in language, workflow and setup, and where lazygit is the better fit. Based on each project's own documentation.
gitty vs tig
How gitty and tig differ in language, workflow and what each is built for, and where tig is the better fit. Based on each project's own docs.
gitty vs gitui
How gitty and gitui differ in workflow and features, both written in Rust, and where gitui is the better fit. Based on each project's docs.
A GitHub Desktop alternative in the terminal
GitHub Desktop is a graphical app. If you want a similar History and Changes workflow in a terminal, here is how gitty compares.
How to stage a single line in a git TUI
Stage a single line of a change without leaving the terminal. The keys, the mouse shortcut, and how gitty stays in sync with git status.
How to browse the history of a huge repository
Browse the history of a very large repository without waiting. What loads first, how to switch scope, and how to pick a range of commits.
How to undo your last commit safely
Undo your last commit safely in gitty, what undo does while the commit is still HEAD, and how to amend it instead.
How to compare your branch with main
Compare your branch with main in the terminal: press b, pick a branch, and see what is ahead, behind and different.
How to search commits by text, author or path
Search the whole history by text, author or path while you keep working, and jump to the commit you need.
How to review a range of commits
Select a range of commits and read their combined files and diff in gitty, with the keys and mouse shortcuts that make it quick.
How to change gitty's theme, or write your own
Switch gitty's theme live, choose from the 23 built-in themes, or write your own theme file with a custom palette.
How a Rust TUI draws its first frame in 14 ms
How gitty draws its layout in 14 to 15 ms and streams history in afterward, with the measurements and the design choices behind them.
Why gitty reads the commit-graph
Why gitty reads git's commit-graph: a full history walk takes 24.8 ms with it and 721 ms without, measured on git/git.
The lock that starved the UI thread for about 350 ms
The history walker held a write lock for the whole walk, about 350 ms on the kernel. How gitty fixed it and the test that guards it.
How we measure a terminal UI end to end
How gitty measures a terminal UI end to end: a screen emulator, event timestamps, and a benchmark script that fails when a budget is missed.