GitLode
Version control, the Mac way.
A native Git client for your Mac that doesn't put all of Git's complexity in front of you. Search everything everywhere all at once, and undo any mistake, even a push.
⌘+Z. Even for a push.
GitLode saves a checkpoint before every commit, merge, rebase, cherry-pick, reset and push, so you can undo any of them for up to 30 days.
Undo Push
Restores the remote branch to where it was pre-push, as long as there haven't been other pushes since yours. Obviously this cannot reverse anything that gets triggered automatically by the push, like CI workflows or deployments.
Safe by design
Before restoring a checkpoint, your HEAD (the commit you're currently on) and affected branches and tags are checked against the recorded state. Newer staged changes (included in your next commit) and unstaged changes (not included) are merged back separately. If they conflict, recovery pauses until you resolve them.
Activity window
You can see every operation across every repository, with live output. Ideally you'll never need to use this, but if you ever do, it's there.
All your repositories in one sidebar.
Click a repository and you see its history right next to it.
Repository library
You can see how many files you've changed and how many commits are waiting to be pulled or pushed.
Combined history
You see the commits on the branch you are on (the source) and on the branch you're targeting. Commits on only one side are marked incoming or outgoing. Read about source and target branches.
Commit details
Full message, clickable parent hashes, author portrait, and changed files.
File-based staging
Tick a file's checkbox to include it in your next commit.
New commits are fetched for you.
You can see what's waiting to be pulled without changing your branches or files. Choose how often to fetch, or turn automatic fetching off. By default, GitLode skips expensive connections and pauses automatic fetching in Low Power Mode.
Docs: Background fetching and search indexing (documentation)
Search the whole history.
You can type text from a commit message, a file name, an author, a commit hash, or a line of code. Matching commits appear as you type. It works like magic.
Everything is indexed
GitLode uses a local SQLite FTS5 trigram index with BM25 ranking. It's so good.
Full text search power
You can search quoted phrases, multiple terms, AND, regex, all that.
Highlights everywhere
GitLode highlights matches in commit messages, file paths, and even file content matches.
And it doesn't require anything
The search system indexes things in the background. It never slows you down.
Work across branches.
Use the same toolbar buttons for more branch operations: hold Option to change Pull to Rebase and Push to Force Push. Force Push always uses force-with-lease (a check that the remote branch still matches GitLode's last fetch).
Compare any two branches
To compare with another branch on your Mac, pick it as the target. This whole thing is not just for remote branches, you can compare anything.
Right-click a commit
Create a branch off that commit, create a tag for it (to mark a release, for example), cherry-pick it onto the branch you're on, revert it, or reset that branch to it.
Stash by name
Tracked and untracked files together. Stashes are great for... stashing your WIP. Great for when you want to switch branches but aren't ready to commit whatever's in your working directory.
Use your diff tool and your merge tool.
Double-click a file to open its diff in the diff tool you set up in Git. For that you need Full Git Integration, an optional helper script you can install from Settings.
Guided conflicts
Merge, rebase, cherry-pick or revert is conflict-aware; you can resolve each file in your merge tool, Mark Resolved, then continue.
Quick Look and file history
You can press Space to preview any version of any file. You can also pull up a file's history, all its versions, all its renames, across all branches.
Yes, it does have dark mode.
GitLode obeys your Mac's appearance setting. Try it on this page.
Reach for the mouse less.
Move between the sidebar, history and file list with the arrow keys. Use shortcuts to search, commit, pull and push.
- Search
- ⌘ F
- Commit
- ⌘ ↩
- Include every file that can be committed
- ⌘ ⇧ ↩
- Pull from remote target / merge local target
- ⌘ ⇧ U
- Rebase onto the selected target
- ⌥ ⌘ ⇧ U
- Push to the selected remote target
- ⌘ ⇧ P
- Force Push
- ⌥ ⌘ ⇧ P
- Undo / Redo the last repository operation
- ⌘ Z / ⌘ ⇧ Z
- Working Changes / History
- ⌘ 1 / ⌘ 2
- Open Activity
- ⌘ 0
- Include or exclude the selected files
- S
- Quick Look
- Space
Built for ProMotion displays.
Runs smoothly at 120 FPS. Everything was built to be as fast as it can be.
1,000,000
commits in the benchmark repository used to measure loading, indexing and search performance.
< 5 ms
99th-percentile scroll work, regardless of whether the repository is idle or indexing commits for search.
Why another Git client?
I wanted a simpler Git client. Most tools show commit graphs, and expose all of the complexity of Git, in attempts to be more 'full-featured'. Git has a lot of stuff for someone who just wants to commit, pull, push, and get back to work.
GitLode is for people who have never learned Git and just want something straightforward as much as it is for people who have used Git for fifteen-plus years. I myself, for a very long time, didn't use Git through the terminal, I used it through an app called GitBox (which heavily influenced my design decisions for GitLode). When the unforgiving pace of macOS upgrades put an end to GitBox, I switched to IntelliJ IDEA's Git UI, which was OK but nowhere near as nice. I wanted the nice simplicity back. I built GitLode around plain Git repositories, so you can open yours in another Git app if you ever need to move on.
The other goal is to be the most Mac-assed Git client there is. Mac users deserve apps that respect the Mac way of doing things. Who wants yet another Electron app?
This is version 1.0. If something's missing, email me and let me know.
Bruno Moreira, Solmyr LLC
Pay $19 once.
Questions
Do I need to know Git to use it?
You need to know what a commit and a branch are. You don't need the command line. GitLode asks before it discards changes or rewrites a commit, and Command-Z undoes a commit, merge, rebase or push.
Will it change my repository without asking?
No. GitLode just fetches new commits in the background, it doesn't change anything. Your branches and files change only when you click or press a key, but you can undo at any point.
Does it work with GitHub, GitLab and Bitbucket?
Yes, and with any other remote. Install Full Git Integration and your configs, credentials and private repositories work the same way as they would in your terminal. Without it, GitLode runs Apple's Git inside the App Sandbox. SSH works there, but most credential helpers, like gh or Git Credential Manager, don't.
Does GitLode replace Git?
No. GitLode is a GUI for Git. Out of the box it runs Apple's Git from the Command Line Tools or Xcode, and with Full Git Integration it runs the same Git you use in Terminal. You're still using Git, it's just... nicer.
Does it run my hooks and sign my commits?
Yes, with Full Git Integration. It's optional: GitLode installs one script after you confirm, and macOS runs that script outside the App Sandbox, so Git runs exactly as it does in Terminal. Without it, Git can't run hooks or signing programs, and GitLode never skips a hook without asking you first.
How does diff/merge work?
With Full Git Integration, GitLode uses the diff and merge tools you choose in Settings > Tools. Otherwise, it uses diff.tool and merge.tool from your global Git configuration, and ignores tool settings in a repository's own configuration. If nothing is configured, GitLode will tell you how to set one up. In Basic mode, Git can't open external tools (I'm also hoping to ship a diff tool in GitLode soon).
Does it support dark mode?
Yes. GitLode uses semantic macOS colors, and it will match the system appearance and your accent color without you needing to customize anything. Hooray for Mac apps that look like Mac apps.
Can I stage/commit individual lines or hunks?
Not yet. Staging is per file, and with Full Git Integration, diffs will open in your external tool. If that's a blocker for you, let me know at support@gitlode.com.
What about submodules and worktrees?
Right now, existing linked worktrees work like ordinary repositories. There's no dedicated submodule or worktree management yet. If that's a blocker for you, let me know at support@gitlode.com.
Where does my data live?
On your Mac. Everything is stored locally, and there is no telemetry. Profile pictures are fetched from Gravatar, but you can turn that off.
What do I need to run it?
Nothing, really. macOS 15 or later on Apple silicon, and Git from Apple's Command Line Tools or Xcode (you almost certainly have them already; if not, run xcode-select --install in Terminal). Intel Macs are not supported.
Can I try it before I buy?
Sadly, no, that's a Mac App Store limitation. You can try it, and if you don't like it, you can ask Apple for a refund.
Ready for a Git client that feels like a Mac app?
$19 once · macOS 15 · Apple silicon









