Palace

The Git client Linux deserves.

Palace is a fast, beautifully simple Git client for Ubuntu and other Linux desktops, and now for macOS too. Free and open source.

Download for Linux Star on GitHub

Version 0.16.0 · Linux and macOS · MIT licensed

Palace in the light theme, showing the lantern repository: branches, tags, remotes and stashes in the sidebar, the commit history with its branch graph grouped by month, and the selected commit’s details and diff

History

See your whole history.

Every commit on a clear branch graph, grouped by month. View HEAD or any branch, remote branch, tag or stash.

  • Author, dates, refs and message, with a diff for every changed file.
  • Ctrl+F searches files and commits together, by message, author or hash.
  • Browse any commit's file tree, see a file's history, and blame it line by line.
  • Busy history with dozens of branches? Mainline shows each merge as one commit, in a straight line.
Palace's history for the main branch with its branch graph, and the toolbar search for "note" open, listing three matching files and the matching commits with their authors and dates
Palace's working copy with three changed files. The diff for src/components/NoteEditor.vue shows three unstaged chunks with Discard Chunk and Stage Chunk buttons, a staged chunk with an Unstage Chunk button, and the commit message box with an Amend last commit option

Working copy

Stage exactly what you mean.

Stage, unstage or discard whole files, single chunks or individual lines, and turn a busy afternoon into clean, focused commits.

  • Discarding a whole file moves it to the Trash, not into the void.
  • Write the message, commit, or amend the last commit in place.
  • Stash everything or just selected files, then apply or drop them from the Stashes view.

Branches

Merge, rebase and rewrite with a drag.

Drag a branch onto HEAD to merge it. Drag commits to reorder them and squash several into one, without an editor full of pick lines.

  • Resolve conflicts one block at a time: take the current side, the incoming side or both, or decide for the whole file.
  • Compare any two branches or tags: see the commits one has that the other doesn't, and every change it would bring.
  • Rebase from the toolbar, and cherry-pick, revert and reset from a right-click.
  • Create, rename, delete and publish branches — a new branch can go to the remote straight away.
A merge conflict in src/lib/storage.js. Conflict 1 shows the current side in blue and the incoming side in yellow, with Current, Incoming and Both buttons, above Use Current, Use Incoming, Open in Editor and Mark as Resolved for the whole file
Palace's Issues view for timmcleod/lantern: open issues with their labels and comment counts, filters for label, assignee and author, and the issue "Sync notes between devices" open with its labels, comments and a Markdown comment box

GitHub

Issues and pull requests, next to your code.

Sign in to GitHub, and the repository's issues and pull requests are right there in the sidebar. No browser tab to keep open.

  • Filter by label, assignee, reviewer or author, and search titles and descriptions.
  • Read and write comments in Markdown, edit labels and assignees, and close or reopen.
  • Create a pull request from a branch, see whether it can be merged, and merge it with a merge commit, a squash or a rebase.

Under the hood

Real Git underneath.

Palace runs your own git for every change. Nothing is reimplemented, so nothing behaves differently.

  • Your hooks and commit signing run on every commit.
  • Your SSH agent and credential helpers handle remotes.
  • Your .gitconfig applies, exactly as it does in the terminal.
Your setup, as it is in the terminal
$ git commit -F -
pre-commit  running lint… ok
gpg         signing with your key… ok
[main 4e1c2a7] Show blame beside the file view
 2 files changed, 41 insertions(+), 6 deletions(-)

$ git push
ssh-agent   using your key
To github.com:you/your-project.git
   a41c9e2..4e1c2a7  main -> main

And more

Everything else, done carefully.

Fast and small

A native Rust core, not Electron. Large histories load quickly and page in as you scroll.

Live refresh

Changes made in the terminal or your editor show up immediately.

Light and dark themes

A clean light theme and a blue-gray dark theme. Diffs have a colorblind-friendly option.

Keyboard friendly

Arrow keys move through files and commits; Back and Forward retrace your steps.

Recent repositories

Switch between repositories from the sidebar, or create a new one.

Fetch, pull and push

One click each, with live progress and Cancel. Pull with merge or rebase; force push when you need it.

Tags and remotes

Create, push and delete tags. Add, rename and remove remotes. Delete remote branches.

GitHub account

Sign in to browse and clone your repositories, create new ones and manage SSH keys. Shows authors' profile pictures.

Automatic updates

Palace checks GitHub for new releases and installs them for you.

Download Palace

Free and MIT licensed, for 64-bit (x86-64) Linux and for macOS. Once it's installed, Palace finds new releases and updates itself.

.deb package

Ubuntu, Debian, Pop!_OS, Linux Mint, elementary

$ sudo apt install ./Palace_*.deb

Installs Git for you if it's missing.

Download .deb

AppImage

Any distribution

$ chmod +x Palace_*.AppImage
$ ./Palace_*.AppImage

Needs Git, plus libfuse2 on Ubuntu 22.04 and later (libfuse2t64 on 24.04 and later).

Download AppImage

Also for macOS · macOS 11 or later, Apple silicon and Intel

Open the .dmg and drag Palace to Applications. It isn't signed by Apple yet, so the first time, go to System Settings › Privacy & Security and click Open Anyway.

Download .dmg

Like Palace? Give it a star.

A star on GitHub is a quick way to say thanks, and it helps other developers find Palace.

Star Palace on GitHub