English | 正體中文
TortoiseGit for Linux: right-click in the Nautilus file manager to commit, browse the log, view diffs, and push/pull.
No terminal, no commands to memorize.
| Item | Notes |
|---|---|
| Linux desktop | GNOME (Nautilus, GNOME 43+) or KDE Plasma (Dolphin) |
git |
2.23 or later |
python3 |
3.9 or later |
| nautilus-python | GNOME only: provides the Nautilus context menu. KDE needs no extra package -- Dolphin reads a plain service-menu file |
Install nautilus-python first; the package name differs per distribution:
sudo pacman -S nautilus-python # Arch
sudo dnf install nautilus-python # Fedora
sudo apt install python3-nautilus # Debian / Ubuntu (the one odd name)Arch ships a Python newer than the current PySide6 pip wheels, so pip install PySide6 can fail on a perfectly healthy system. Install the system package first; the install script falls back to it automatically when pip fails:
sudo pacman -S pyside6The package you download depends on your distribution; how you reload the menu depends on your desktop (GNOME or KDE). Both menus ship in every package -- your desktop picks up the one it uses.
Every tagged release ships a .pkg.tar.zst built by CI (Releases page):
sudo pacman -U rendy-git-*.pkg.tar.zst # ArchThen reload the file manager: GNOME nautilus -q; KDE just reopen Dolphin
(run kbuildsycoca6 if the menu does not appear).
sudo apt install ./rendy-git_*_all.debThen reload the menu: GNOME nautilus -q; KDE reopen Dolphin (run
kbuildsycoca6 if it does not appear).
PySide6: Ubuntu 25.10+ / Debian 13 install it automatically (a Recommends). Ubuntu 23.04-25.04 / Debian 12 do not package PySide6 at all -- add it once with:
python3 -m pip install --user --break-system-packages PySide6KDE neon uses this .deb too (it is Ubuntu 24.04 based) — add PySide6 via pip as above.
Ubuntu 22.04 is not supported (GNOME 42 predates the Nautilus 4.0 extension API).
The package uses the system Python and pyside6; nautilus-python is an
optional dependency for the context menu.
git clone <this repository> rendy-git
cd rendy-git
./packaging/install.shThen reload the menu: GNOME nautilus -q; KDE reopen Dolphin (run
kbuildsycoca6 if it does not appear).
The script needs no root; everything lands in your home directory:
~/.local/share/rendy-git/venv— PySide6 lives here, without polluting the system Python~/.local/bin/rendy-git— the command itself~/.local/share/nautilus-python/extensions/— the context menu
If the installer warns that
~/.local/binis not on PATH, the context menu cannot find the program. Addexport PATH="$HOME/.local/bin:$PATH"to~/.bashrcand reopen the terminal.
Uninstall:
./packaging/install.sh --uninstallRight-click inside any Git project folder (or on selected files); everything lives under the Rendy Git submenu. Works in GNOME Files (Nautilus) and in KDE's Dolphin.
Dolphin note: its menu is a static service menu, so all actions always show; an action that needs a repo simply reports "Not inside a Git repository" when used elsewhere.
Folders that are not a git repo also show the submenu, holding just two items: Create Repository Here... and Clone....
| Menu item | What it does |
|---|---|
| Create Repository Here... | Create a new git repo in this folder (non-repo folders only) |
| Clone... | Paste a URL, clone into a subfolder here (non-repo folders only) |
| Git Commit... | Tick files, write a message, commit. Optionally push in the same step |
| Compare with Previous Version | Diff a selected file against the last commit that touched it (selection only) |
| Git Branch / Checkout... | Switch, create, and delete branches |
| Git Tag... | List tags, create (annotated or lightweight), delete, push a tag to the remote |
| Git Stash... | Stash current changes; browse, apply, and drop stashes |
| Edit Conflicts / Resolve... | During a merge/rebase conflict: pick "mine" or "theirs" per file, or mark hand-edited files resolved; Abort the whole operation |
| Git Sync... | One window with "to push" and "fetched, not merged" commits, plus Fetch/Pull/Push buttons |
| Git Show Log | Browse history; click a commit for its message and files, double-click a file for its diff |
| Git Diff | View uncommitted changes |
| Git Pull... / Push... | Pick the remote and branch first (pull offers rebase; push offers force / -u), then live progress |
| Git Fetch | Fetch all remotes with live progress |
| Git Add | Stage the selected files |
| Git Revert... | Restore selected files to their last committed state |
| Settings... | Settings window: git identity (global/per-repo), fonts, commit defaults, advanced options. Opens inside or outside a repo |
The same commands work from a terminal, with identical behavior:
rendy-git commit . # the whole repo
rendy-git log src/app.py # history of a single file
rendy-git diff src/ # changes under one folder- Ticked files are exactly what goes into the commit. Files you
git add-ed elsewhere but left unticked are unstaged before committing. What you see is what you get. - Untracked files start unticked. Accidentally committing a build artefact costs far more than one extra click.
- Amend pre-fills the previous commit message. Commit & Push then pushes with
--force-with-lease— it only overwrites when the remote has no commits you haven't fetched, so it cannot clobber a colleague's work.
This cannot be undone. Files return to their last committed content; your changes are gone.
One deliberate exception: files that were never committed are not deleted — they are only unstaged back to untracked. The program has no right to delete something you never committed.
Logs are written to logs/:
| File | Contents |
|---|---|
rendy-git_YYYYMMDD.err.log |
Warnings and errors only — start here |
rendy-git_YYYYMMDD.task.jsonl |
One line per action: what ran, ok/fail, duration |
rendy-git_YYYYMMDD.log |
Full detail; grep it with the trace id found in the two files above |
Common issues:
- No context menu in GNOME Files → nautilus-python is missing, or you forgot
nautilus -q - No context menu in Dolphin → check the file exists (
ls /usr/share/kio/servicemenus/rendy-git.desktopor~/.local/share/kio/servicemenus/); a menu under~/.localshould be executable for Plasma 6 (chmod +x—install.shdoes this); then runkbuildsycoca6and reopen Dolphin - Push hangs or asks for a password → background password prompts are disabled (they would freeze the window forever). Set up an SSH key or a git credential helper first
- Selected files from two different repos → refused, because there is no single repo to act on
The UI follows the system language (LANG) by default. To switch manually: context menu → Settings... → Interface → Language, or set "language" in config.json ("auto" / "en" / "zh_TW").
Traditional Chinese is built in. To add another language, copy lang/zh_TW.json to lang/<code>.json (e.g. ja.json) and translate the values — keys are the English source strings, and untranslated strings simply fall back to English. No reinstall needed; new windows pick it up.
The Settings... menu item is the easy way; it edits this config.json (next to the program, or ~/.config/rendy-git/config.json):
{
"git_executable": "git",
"log_level": "INFO",
"language": "auto",
"ui": { "diff_font_family": "monospace", "diff_font_size": 10 },
"commit": { "amend_default": false, "signoff_default": false },
"log_dialog": { "page_size": 200 }
}v1 deliberately skips icon overlays — TortoiseGit's green check / red exclamation drawn on file icons.
Linux has no equivalent mechanism: Nautilus only offers emblems (small corner icons), they update with a lag, and they need a background daemon polling git status, which slows the whole file manager down on large repos. A half-working, misleading version is worse than none.
Also missing: merge/rebase launch dialogs (conflict resolution exists), blame, submodules, remote branch deletion, "set as compare baseline" paired diff, revision graph, bisect.