The workshop · Edition No. 47 · 11 Oct 2026

gitbutlerapp/gitbutler

A desktop git client that keeps several unrelated changes on separate branches without switching.

← The workshopRead the whole edition →

21,795 stars · NOT OPEN SOURCE. Functional Source License 1.1 with an MIT Future License (FSL-1.1-MIT), read from /blob/master/LICENSE.md. GitHub's sidebar shows only the word 'License' and NAMES NO LICENCE AT ALL, because this is not one GitHub recognises · release/0.22.3 (2026-08-29), read from /releases/latest; the year was absent and was settled against ungh's releases endpoint, which dates it 2026-08-29T07:58:12Z. No package registry applies · Track this in Scout

A desktop git client that keeps several unrelated changes on separate branches without switching.

▶Repo detailsthe review · specs · pros & cons · install

What it does

You point it at a git folder you already have. It shows the changes in your working copy and lets you assign each file, or each part of a file, to one of several branches that are all active at once. It commits, amends, rewords, splits, squashes and moves commits by dragging, and restacks the dependent branches automatically when you amend something underneath them. It keeps a timeline you can undo from. Conflicts work differently here: a rebase "always succeeds", and you resolve the conflicts afterwards, in any order you like. It opens and updates pull requests on three hosting services, and it has built-in helpers that write commit messages and branch descriptions. What it does not do is come with any stated limits in its README — the limits are in the licence and in the developer notes, where one dependency "doesn't currently compile on ARM" for Windows and the development server can fail to start on a case-sensitive macOS disk.

Why it matters

Who it suits. People who regularly have two or three unrelated changes in flight and lose time to stashing and switching. It also suits anyone who finds rebasing stressful, because the always-succeeds model moves the hard part to a moment of your choosing. Skip it if you work on one thing at a time, because the whole benefit disappears. And skip it if your organisation requires OSI-approved open-source licences for its tooling, because this is not one.

Verdict. Worth an evening on a real project, because the idea only makes sense once you have felt it. The licence is the thing to read first, and the entry ranks it above the features for that reason. It is the Functional Source License, version 1.1 with an MIT future grant, and GitHub's sidebar cannot even name it — the page shows the word "License" and no licence name, because this is not a licence GitHub recognises. The terms forbid making the software available in a commercial product or service that "substitutes for the Software" or "offers the same or substantially similar functionality as the Software", and grant you the MIT licence on each version two years after it ships. For an individual or a team using it internally, that restriction costs nothing. For anyone building a product, it is the whole question. Two smaller notes: it is version 0.22.3, still before 1.0, and the development setup collects build-tool telemetry by default, which you turn off with pnpm exec turbo telemetry disable. If the licence is a problem, jj-vcs/jj and jesseduffield/lazygit are the two live alternatives.

Stars21,795
LicenceNOT OPEN SOURCE. Functional Source License 1.1 with an MIT Future License (FSL-1.1-MIT), read from /blob/master/LICENSE.md. GitHub's sidebar shows only the word 'License' and NAMES NO LICENCE AT ALL, because this is not one GitHub recognises
Latestrelease/0.22.3 (2026-08-29), read from /releases/latest; the year was absent and was settled against ungh's releases endpoint, which dates it 2026-08-29T07:58:12Z. No package registry applies
Good
  • It works on any existing git folder with no conversion and no change to the repository format.
  • Several unrelated changes stay separate without stashing or switching, and dependent branches restack themselves.
  • Code landed on the morning of this edition, and it has been going since January 2023.
Watch for
  • Not open source. The licence forbids a competing commercial product and only becomes MIT two years after each release.
  • Version 0.22.3, before 1.0, and the README states no limitations at all, so the only written boundaries are in the licence and the developer notes.
  • Build-tool telemetry is collected by default in the development setup, and a company with a hosted service stands behind the project.
Similar repositories
Install
# Debian or Ubuntu, the system packages first
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file \
  libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev cmake
# Then the project
pnpm install
cargo build
pnpm dev:desktop
# Command-line tool only
cargo build -p but

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.