Tortilla

A fast, native git client for Windows and Linux.

The log, commit and rebase dialogs you know from TortoiseGit, right-click away in your file manager, drawn with your desktop's own widgets.

View on GitHub Early days: see status

Tortilla's mascot: a cheerful green turtle whose shell is a taco, filled with lettuce, tomato and cheese

Not a web page pretending to be an application

Native, for real

Tortilla is built on rapport, its own UI library, which uses each platform's real widgets: Win32 on Windows, and GTK 4, GTK 3 or Qt 6 on Linux, picked when it starts to match your desktop. Your theme and fonts apply, because they're the toolkit's own.

Quick on its feet

It opens in an instant and scrolls through years of history without stuttering, keeping pace with high-refresh displays. Written in C++, with libgit2 for reading the repository and git itself for the work.

At home if you know TortoiseGit

Tortilla follows TortoiseGit's dialogs and menus, so the muscle memory carries over, and now it runs on Linux too. Right-click a folder, pick Commit or Show log, and you're there.

What's in the shell

  • Log and commit graph

    Branch and tag labels, filters and date ranges, the commit's details and changed files. Drag a label onto a commit to move the branch; double-click it to switch.

  • Commit

    Pick the files, amend, set the author or date, add Signed-off-by. Mark a file to restore after the commit, to split a change across several commits.

  • Check for modifications

    Every change in the working tree, with filters and statistics, and Commit or Stash from the same window.

  • Interactive rebase

    Pick, squash, edit or skip each commit, and reorder them, before starting the rebase.

  • Blame

    Each line with the commit that last changed it, shaded by age, and a slider to step back through the file's history.

  • Diff your way

    A built-in unified diff viewer with find and save, or hand off to your own tool: WinMerge, Beyond Compare, Meld, KDiff3 and others.

  • Branches and the rest

    Branch, tag, switch, merge and reset; stash, reflog, bisect, worktrees and submodules; and a conflict editor when a merge needs a hand.

  • Remotes

    Clone, fetch, pull and push, with progress you can watch.

  • Forge accounts

    Sign in to GitHub, GitLab or Gitea and Forgejo with a token or through the browser; tokens live in your system keychain.

Screenshots

The same windows on each platform, wearing whatever the desktop is wearing.

The log window on Windows: a commit graph with coloured lanes, branch and tag labels, the selected merge commit's details and its changed files
The log on Windows (Win32).
The log window on Linux with GTK 4: the commit graph of a small project across all its branches, with branch and tag labels
The log on Linux with GTK 4…
The same log window on Linux with Qt 6
…and the same log with Qt 6.
The blame window with GTK 4: each line of a C file beside the commit, author and date that last changed it, with a history slider above
Blame, with its slider through the file's history (GTK 4).
The commit dialog with GTK 4: a message box, amend and author options, and the changed files with check boxes
The commit dialog (GTK 4).

Platforms

Windows

Win32 widgets throughout. Tortilla adds its menu to Explorer's right-click menu, and status badges on file and folder icons show what's modified, added or conflicted at a glance. It uses Git for Windows to run git.

Linux

GTK 4, GTK 3 or Qt 6, whichever suits your desktop, chosen when it starts (or pick one with --ui). Context menus for Nautilus, Nemo, Caja, Thunar, Dolphin and PCManFM.

There's no macOS version.

Status: early days

Tortilla is young and moving quickly. The log, commit, rebase, diff and file-manager menus work today; more of TortoiseGit's dialogs arrive as they're written.

There are no releases yet. Installers for Windows and packages for Debian, Ubuntu, Fedora and Arch are on the way; until then, CI builds them on every change, and you can build from source:

git clone --recursive https://github.com/TurkeyMan/tortilla.git
cd tortilla
cmake -S . -B build -G Ninja
cmake --build build
build/bin/tortilla log /path/to/a/repo

You need CMake 3.25, a C++23 compiler, libgit2, and on Linux the development files for GTK 3, GTK 4 and/or Qt 6.

Get involved