Commit-time editing
Reshape when history happened, right in the client. A rarity in any git GUI.
Commit-time editing — shift, set, or compress any range. Preview, then undo.
A fast, native git client for macOS — commit graph, branches, merges, per-hunk diffs, remotes, and a built-in GitHub dashboard. Local-first: no account, no analytics, no tracking.
Real app, shipping — see it on GitHub ↗
Diagram: a commit graph with one commit's timestamp being rewritten from 14:22 to 09:05.
Reshape when history happened, right in the client. A rarity in any git GUI.
Automatic backup (a git bundle) + one-click undo before any destructive op, plus a reflog browser.
No account, no analytics; native (no Electron); source-available for noncommercial use.
Multi-lane commit graph with curved or angular edges, ref badges (branches, tags, remotes, HEAD), infinite-scroll loading, right-click checkout / branch / tag / fetch.
Diagram: a multi-lane commit graph. The tip commit "ship: release v1.0" carries HEAD, main, and origin/main badges; a second lane branches and rejoins with green edges; the base commit is tagged v1.0. One row is highlighted as selected.
Select a range and shift by an offset, set an exact time, or compress the range proportionally into a new window. Preview before it rewrites; undo in one click. Powered by a bundled git-filter-repo.
Diagram: a vertical timeline of seven commits, each with a timestamp. A bracket labeled SELECTED marks a three-commit range; two of those commits show their times being rewritten — 14:22 to 09:05 and 11:58 to 08:30, old times struck through, new times in green. A REWRITE control offers three modes — OFFSET (active), EXACT, and COMPRESS — with a delta of minus five hours seventeen minutes, and a PREVIEW / UNDO strip below, noting an automatic backup bundle was written.
Merge (plain or --no-ff), cherry-pick, and revert — with an in-app conflict resolver: use-ours, use-theirs, continue, or abort, file by file.
--no-ffDiagram: two branch lanes, OURS and THEIRS, converging into a single merge commit that reports one conflict. A conflict resolver panel for the file src/app.rs shows the two conflicting versions with use-ours and use-theirs toggle chips (use-ours selected), plus continue and abort controls.
Soft/mixed/hard reset, amend, rebase-onto, and interactive rebase (reorder / squash / drop / reword). Every destructive op takes a configurable auto-backup (a git bundle) first, with one-click undo and a reflog browser.
Diagram: an interactive-rebase todo list of five commits, each with a drag handle and an action chip — pick, reword, squash (highlighted), drop (struck through), and pick. Below, a green BACKUP CREATED confirmation names a pre-rebase git bundle, alongside a one-click UNDO control.
A working-copy file list with whole-file and per-hunk stage / unstage / discard, syntax-highlighted diffs (unified or split, highlighted offline via bundled Shiki), a commit composer, and stash.
Diagram: a side-by-side split diff of a file. The first hunk is unstaged with a STAGE chip: a removed line "timeout(30)" in red on the old side, and two added lines "timeout(60)" and "retry(3)" in green on the new side. The second hunk is already staged (STAGED chip) with an added "fsync()" line. Below, a commit composer shows one hunk staged, with commit and stash controls.
Streamed pull (merge or rebase) and push (--force-with-lease, --set-upstream) with live progress, cancel, and an ahead/behind indicator. Plus a built-in GitHub dashboard: pull requests, issues, releases, and CI runs. Credentials are prompted on demand and never stored (a transient 0600 file, deleted immediately after).
Diagram: a remote sync readout for origin/main showing an ahead-by-two, behind-by-one indicator, a streaming git push log with a progress bar at 69% and a cancel control, and a note that credentials are a transient 0600 file. Below, a mini GitHub dashboard shows a pull-request chip, an issue chip, and a green CI-passing chip.
The console you’ve been reading — orange on void, corner brackets, scanlines — isn’t just the website. It’s NERV, one of Git It’s two built-in themes. Prefer something quieter? Classic wears native macOS vibrancy: frosted glass over your desktop. Switch anytime, and tune the accent across six schemes, in Settings → Appearance.
Diagram: two theme swatches side by side — a light frosted-glass “Classic” panel and a dark orange-on-void “NERV” console with corner brackets and a mini commit graph — with a swap arrow between them, showing you can switch from one theme to the other.
Also — open several repos at once, as tabs or a sidebar list, your choice.
Open the .dmg, drag Git It into Applications, launch. It keeps itself up to date after that — with an optional beta channel in Settings → Updates.
each runs fully native; in-app updates track the right build.
Signed & notarized by Apple — opens with a normal double-click.
No account, no backend, no analytics. Your repos and credentials stay on your Mac. The only network calls are the git/GitHub operations you trigger, plus a version check for updates. Credentials are prompted on demand and never written to disk beyond a transient 0600 file that's deleted right after.
No — the release is signed and notarized by Apple; it opens with a normal double-click. (Only self-built ad-hoc copies trigger the Gatekeeper prompt.)
Native vibrancy and title-bar handling are macOS-specific. Apple Silicon and Intel builds are both fully native (no Electron).
Destructive ops take an automatic git-bundle backup first, force-push is always --force-with-lease, and there's one-click undo plus a reflog browser.
git and python3 — both from the Xcode Command Line Tools (xcode-select --install). git-filter-repo is bundled.
In-app auto-updates, with an optional beta channel in Settings → Updates.
Download the .dmg that matches your Mac; each runs fully native. Updates then track the right build.
Free and source-available under CC BY-NC-SA 4.0 — use it for any work (including at your job); you just can't resell or repackage the app itself, and forks stay under the same license. Not an OSI open-source license.
Git It is developed in public. Read the source, file an issue, or open a pull request — everything happens on GitHub.
Source-available under CC BY-NC-SA 4.0 — not an OSI open-source license.
Contributions welcome — accepted under the project's CC BY-NC-SA 4.0 license.