GitHub - baol/gg: Good Git: user friendly UI to explore or manage changes. (code 100% AI generated)

GitHub

3 min read Original article ↗

Git Good native History tree view

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

  1. Download the archive for your platform (x86_64 or arm64 on Linux, macOS, or Windows) from GitHub Releases.
  2. Extract git-good (git-good.exe on Windows) into a directory on your PATH (such as ~/.local/bin or /usr/local/bin).
  3. 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 with Space, open commit actions with Alt+A, and view all shortcuts under Help.

Documentation

CLI reference · Contributing · Development · Architecture · Design

Apache-2.0 · LICENSE