mrkeyoor.com_
Tue 01 Sept 17:40 UTC
Dev Toolsevaluationupdated 26 Aug 2026

gitbutler review

GitButler is a source-available desktop app and command-line client for Git. It keeps parallel and stacked branches in one workspace, lets you reshape commits without an interactive rebase, and gives coding agents the same branch model through the `but` CLI.

+35stars / 7d
Verdict

Our GitButler install failed after 9 seconds before it produced a build or test result, so source contributors should expect to fix the runtime and pnpm configuration before judging the code. The packaged client is still worth trying for developers who handle stacked branches and frequent commit surgery, because parallel branches and the operation history address real Git friction. Keep plain Git recovery skills close, and rule it out if your product would compete with GitButler during the license's two-year restriction.

We ran it

Lab card: what happened when we ran gitbutlerScreenshot of gitbutler (gitbutler.com)
Install✗ · 9s
Build
Repo4670 files~599,661 lines of source · 28.6 MB · 12 CI workflows

Answers from our run

Does gitbutler build from source?

The dependency install failed, and the project has no separate build step. We cloned commit cab5e6d into a clean Debian container with 3 CPUs and no project-specific setup.

Who should not use gitbutler?

Companies building a competing Git client or service: the FSL-1.1-MIT license bars competing use until each version reaches its two-year conversion date.

What are the alternatives to gitbutler?

Lazygit, Git Town, Jujutsu. Our GitButler install failed after 9 seconds before it produced a build or test result, so source contributors should expect to fix the runtime and pnpm configuration before judging the code.

Setup2/5Our install stopped on engine and pnpm configuration errors
Docs4/5Detailed user and build guides, but the Node floor conflicted
Community5/521,573 stars with same-day code and issue activity
Maturity3/5Frequent releases, with current reports in core history operations

Discussed on

  1. hnThe GitButler version control client backed by Git, powered by Tauri/Rust/Svelte23 points

Who it’s for

Developers who maintain stacked pull requests or several related branches at once.
Visual Git users who frequently move, split, squash, amend, or uncommit changes.
Teams using GitHub, GitLab, or Bitbucket that want forge work inside their Git client.
Coding-agent users prepared to adopt the but CLI and its agent skill.

Who it’s NOT for

Companies building a competing Git client or service: the FSL-1.1-MIT license bars competing use until each version reaches its two-year conversion date.
Teams that depend on one-click undo for complex stacks without a recovery drill: open issue 15573 reports a version 0.22.1 restore leaving 7 of 8 branch segments stranded.
Windows users on locked-down machines: issue 14886 says the available MSI needs admin rights, while issue 15556 reports Defender blocking the 0.22.1 executable.
Occasional contributors expecting a small source build: the development guide requires Rust, pnpm, Tauri system libraries, and native compilation tools, and our install did not finish.
Contributors seeking a community-led merge process: the contribution guide says outside work is not central to the company's process and asks people to discuss changes before coding.

Setup reality

Our sandbox install failed with exit 1 after 9 seconds at commit cab5e6d. pnpm reached all 13 workspaces, then reported both a built-dependency configuration conflict and an unsupported engine: Electron 43.3.0 required Node 22.12.0 or newer, while pnpm saw v20.20.2. The checkout had 4,670 files, about 599,661 source lines, and occupied 28.6 MB.

Local Git use does not require a hosted service. Pull-request and forge features need authentication to GitHub, GitLab, or Bitbucket. AI assistance can use GitButler's hosted API without a personal key, or your own OpenAI, Anthropic, Ollama, or LM Studio setup.

Source development needs Rust, pnpm, Node, Tauri libraries, and native build tools. The guide says Node 20 or newer, but our log showed Electron demanding 22.12.0. Debian builds also need WebKitGTK and related packages; macOS needs Xcode tools and CMake; Windows needs MSVC and Perl for OpenSSL.

Parallel branches are the reason to try GitButler

GitButler lets several branches remain active in one working directory. Stacked branches record dependencies between changes, while edits to an earlier commit can be restacked above it. Commits can be moved, split, amended, squashed, or returned to uncommitted changes from the desktop app or the but CLI. An operation timeline records changes and supplies undo actions. That directly addresses the worktree, stash, and interactive-rebase routine many Git users assemble themselves.

The same Rust engine backs the Tauri app and CLI. Release 0.22.1 added branch targeting to more commit commands, individual conflict-resolution commands, and JSON output changes. Forge integration covers GitHub, GitLab, and Bitbucket. Built-in AI can draft branch names, commit messages, and pull-request descriptions, while agent skills expose the workflow to coding tools. This helps when a person and an agent modify the same repository.

Version 0.22.1 has a risky stacked-restore report

An open Linux report describes restoring a stack of 8 branches. According to issue 15573, only the top segment moved back, 7 lower segments became unapplied, and the reporter recovered by editing refs with git update-ref. The issue includes a reproducer and labels its proposed internal cause as a guess. The broken state is documented; the explanation remains unconfirmed.

This report concerns GitButler's main promise. Stacked-branch users should practice recovery on a disposable clone, inspect refs after a large undo, and keep remote branches or another backup boundary. Issue 15573 shows why the timeline cannot be the only recovery plan. Teams that rarely stack changes may get more familiar behavior from Lazygit.

What happened when we ran it

Our sandbox install failed with exit 1 after 9 seconds at commit cab5e6d. We used a fresh unprivileged Debian container with 3 CPUs and 8 GB of RAM. The checkout contained 4,670 files, about 599,661 source lines, and occupied 28.6 MB. It was a pnpm monorepo with 13 workspace projects. Our scan found 12 CI workflow files, no Dockerfile, and no tests directory.

The log reported two stopping errors. pnpm said neverBuiltDependencies and onlyBuiltDependencies could not both be present. It also rejected Electron 43.3.0 because Electron required Node 22.12.0 or newer while pnpm reported v20.20.2. Although the image was named lab-node:22, the log records the runtime pnpm used. It did not identify why those settings or that runtime were active.

Installation did not finish, so our run produced no build or test result. The 12 workflow files prove upstream automation exists, but they do not replace a passing result on our box. This checkout did not become runnable in the stated environment, and a contributor has two setup errors to resolve before compilation.

The documented Node floor did not satisfy Electron

The guide says Node 20 or newer, while the root manifest at cab5e6d declared Node 20.11 or newer and pnpm 10.20.0. Our log showed Electron asking for Node 22.12.0. Contributors should follow the stricter version seen by the resolver and check pnpm's built-dependency settings before retrying. That mismatch makes the current source instructions less dependable than their friendly tone suggests.

Desktop development also needs Rust, Tauri libraries, and native build tools. Debian-family systems need WebKitGTK, SSL headers, app-indicator support, SVG libraries, and CMake. macOS needs Xcode command-line tools and CMake. Windows needs MSVC and Perl for OpenSSL. CLI-only work removes the Svelte layer, though vendored Git and OpenSSL still need a C toolchain.

Local Git work does not depend on GitButler Cloud. Forge features require an authenticated GitHub, GitLab, or Bitbucket account. AI assistance can use GitButler's API without a personal key, or your OpenAI, Anthropic, Ollama, or LM Studio setup. Private-repository users should decide which provider receives diff context before enabling generated text.

The license blocks competing use for two years

GitButler uses FSL-1.1-MIT. It permits internal use, study, modification, and redistribution for allowed purposes, while forbidding a commercial product or service that competes with GitButler or related services. Each version converts to MIT on its second publication anniversary. The contribution guide calls the project not strictly open source. Companies building Git tooling need legal review before reusing the code.

Outside contributions require signed commits, and maintainers ask people to discuss work before investing in it. The guide says the Berlin company team drives development and outside work is not central to its process. That candor matters in a 4,670-file codebase where a deep private fork would be expensive to carry.

August activity is high, while desktop reports remain current

GitHub recorded 21,573 stars and a last push on August 26, 2026. It listed 415 open issues and pull requests combined, so that figure is not a bug count. Release 0.22.1 arrived on August 24, and reports were still receiving updates on August 26. The project is active, with users exercising fast-moving branch and conflict behavior.

Windows needs a separate trial. Issue 15556 reports Defender blocking the official 0.22.1 MSI executable and removing shortcuts. Issue 14886 asks for a portable archive because the MSI is awkward without administrator rights. These are individual reports rather than proof of a universal failure, but either can stop adoption in a managed workplace.

GitButler earns a trial when stacked reviews and commit surgery consume real time each week. Start with the packaged client on a clone, test your repeated branch operations, and learn the plain Git recovery route. Choose Git Town for a lighter stacked-branch layer, Lazygit for familiar terminal Git, or Jujutsu for an operation-log model with a new command language.

Alternatives

ProjectWhat it isPick it when
Lazygit gh↗A terminal interface for everyday Git staging, commits, branches, rebases, and conflicts.pick this instead when you want a light terminal UI that stays close to ordinary Git concepts.
Git TownA command-line workflow for stacked changes, branch syncing, shipping, and undoing operations.pick this instead when stacked branches matter but you want automation layered onto a normal Git worktree.
Jujutsu gh↗A Git-compatible version control system with first-class change rewriting and an operation log.pick this instead when you accept a different command model in exchange for safer history editing.

What people are saying

  1. [github-trending] gitbutlerapp/gitbutler

Sources

  1. GitButler README
  2. GitButler development guide
  3. GitButler Functional Source License
  4. GitButler release 0.22.1
  5. Issue 15573: stacked snapshot restore failure
  6. Issue 15556: Defender blocks 0.22.1
  7. Issue 14886: portable Windows distribution request

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →