Git client for macOS, Linux and Windows

Your repository,
in view.

GitLama is a desktop Git client. It keeps the history graph, your changes and the selected diff in one window.

Beta. Free software under GPL-3.0-or-later. Built with Flutter and Rust.

The GitLama workspace: a sidebar with branches, remotes and tags, the history graph with a merged feature branch, and below it the selected commit with its changed files

The sidebar on the left, the history graph at the top, the selected commit below. Rendered from the app with sample data.

Features

What it does

The everyday Git tasks, and some that usually mean a trip to the terminal.

Changes

Stage files, hunks or single lines. View diffs unified or split, including images and other encodings. Commit with amend, sign-off, templates and co-authors.

History

A history graph with file trees, blame and reflog. Compare two commits, search commit content and step through a bisect.

Branches and rewriting

Create, rename, merge, cherry-pick and revert. Interactive rebase, autosquash and restacking show a preview before they run.

Remotes and hosting

Fetch, pull and push, with force-with-lease as an explicit choice. Connect GitHub, GitLab, Forgejo or Codeberg for pull requests and review drafts.

Worktrees and tools

Manage worktrees, submodules and Git LFS. Open your editor, terminal, diff or merge tool, and add your own commands.

Recovery

Resume conflicts and rebases after a restart. Named snapshots and per-repository undo let you step back. When an outcome is unclear, the app says so.

The graph

Lanes that stay put

The branch you are on runs in the first lane. Other branches leave and rejoin it on curves, so a merge is easy to follow.

  • Selecting a commit lights its ancestors and dims the rest.
  • Branch, remote and tag labels sit on the commit they point to.
  • The command palette, shortcut hints and native menus work from the keyboard.

A model, not the app. Select a commit to light its ancestors.

Changes

Stage the lines you mean

Pick single lines from a diff and leave the rest unstaged. The same works for hunks and whole files.

  • Unified and split layouts, with whitespace and context controls.
  • The commit editor keeps a draft per worktree.
lib/widgets/compass.dartUnstaged
@@ -41,5 +41,7 @@void _onModifier
4141 void _onModifier(bool held) {
42- setState(() => _hints = held);
42+ if (held == _hints) return;
43+ setState(() => _hints = held);
4344 }
4445
46+ bool get showsHints => _hints;
4547 }

A model, not the app. Click a line number to select changed lines, then stage them.

Download

Get GitLama

GitLama is in beta. It uses the Git you have installed, version 2.39 or newer. Open a repository and you are ready.

No verified public release is available yet.
Check a download

Each package lists its SHA-256 checksum. Copy it with the button next to the package and compare it with your file.

shasum -a 256 GitLama-*.dmg      # macOS
sha256sum gitlama_*.deb          # Linux
Get-FileHash GitLama-*.msi       # Windows PowerShell

The links on this page come from a release index signed with Ed25519. Public key