Purpose: introduce Git Good and explain installation and use.
A fast, native Git desktop app. Browse the History tree, inspect diffs, stage hunks or lines, commit, and recover rewrites without leaving the UI.
Install or update
Git runs git-good whenever you invoke git good, as long as the binary is on your PATH.
Prebuilt binaries
- Download the archive for your platform (
x86_64orarm64on Linux, macOS, or Windows) from GitHub Releases. - Extract
git-good(git-good.exeon Windows) into a directory on yourPATH(such as~/.local/binor/usr/local/bin). - To update, replace the binary in place with the new release.
# Linux / macOS example (replace TARGET with your platform archive) curl -L https://github.com/baol/gg/releases/latest/download/git-good-TARGET.tar.gz | tar -xz -C ~/.local/bin git-good
From source
Requires Rust 1.95+. Git Good runs Git from PATH; a commit hook that exists needs Git 2.36+ to run. Re-run the same command to update:
cargo install --git https://github.com/baol/gg git-good --locked --force
Or from a local checkout:
cargo install --path apps/git-good --locked --force
Run
Open the current repository (or pass a folder):
Commands for scripts follow --cli and print JSON, for example git good --cli status --repo .; see the CLI reference.
UI overview
- History tree and Refs — Stream and filter the History tree with commit lanes and branch, remote, and tag pills. Switch branches, create tracking branches, merge, or rebase from the refs sidebar or the Branch menu; the toolbar keeps fetch, pull, and push one click away, and search (
Ctrl+K) runs every menu command. - Commit review — Press Enter on a commit to inspect changed files, side-by-side or inline diffs, image previews, blame, and File history.
- Local Changes — Inspect staged, unstaged, untracked, and conflicted files. Stage, unstage, or discard whole files, hunks, or individual lines, then commit or amend
HEAD. - Rewrites and recovery — Cherry-pick, revert, reset, or rewrite commits with an interactive rebase (pick, reword, reopen, squash, fixup, drop, reorder). Rebase stops show the step, a reopened commit opens in Local Changes to split, and conflicts resolve block by block, with Continue, Skip commit, and Abort and restore. Automatic private backups and the reflog under
Repository → Recovery…let you restore previous branch tips. - Sync and Stash — Fetch, push, and clone from Repository with live progress and cancellation, or park work from Stash.
- Preferences —
Repository → Preferences…(Ctrl+,) sets the theme, compact or comfortable rows, clone folders with a preferred one, network avatars, and the rebase autostash default. - Keyboard navigation — Navigate with arrows or
j/k, toggle details withSpace, open commit actions withAlt+A, and view all shortcuts under Help.
Documentation
CLI reference · Contributing · Development · Architecture · Design
Apache-2.0 · LICENSE
