{"version":"0.22.0","notes":"## Changes\nNative GitHub Stacked PR Support is available in gitbutler 🥞🎉\n\n- GitButler now automatically uses GitHub's native stacked pull requests for enrolled repositories, falling back to description footers otherwise\n- You can now choose per project whether GitButler adds stack metadata to pull and merge request descriptions\n- Cherry-picking now creates conflicted commits when a pick conflicts instead of blocking it\n\n## CLI\nBreaking changes: This release overhauls the `commit`, `amend`, `squash`, `discard` and `move`. The commands `rub`, `stage` and `unstage` have been removed. For agentic use its important to update the skill (`but skill check --update`)\n\n- The CLI no longer reads change assignments from the desktop app. All worktree changes are treated as uncommitted; `but stage`, `but unstage`, and `but commit --only` have been removed\n- `but commit` now takes sources positionally and uses `-b/--branch` for the target branch and `--above` or `--below` for stacking\n- `but squash` still takes sources positionally but now uses `-t/--target` for the target. It can squash all types of sources into commits, branches, and the uncommitted area.\n- `but amend` and `but uncommit` work similarly to `but squash`\n- `but move` still takes sources positionally but now uses `-t/--target`, `--above`, or `--below` for the target. It can move commits, committed files, and branches. Use `--unstack` to unstack a branch\n- `but rub` has been replaced by `but squash`\n- `but amend` and `but squash` now default to uncommitted changes when you omit the source argument\n- Mutation commands now print concise results with change IDs by default\n- `--json` is now the standard machine-readable output flag, replacing `--format json`\n- History-editing commands now refuse to modify commits already merged upstream, with `--allow-merged` available for deliberate overrides\n- Errors now include recovery guidance for history edits, pull conflicts, cherry-picks, and pull or merge request actions, including newly conflicted commits and operations rejected by commit dependencies\n\n## TUI\n\n- The TUI now has a dedicated squash mode that lets you select the source or target first and squash across multiple branches, replacing rub mode\n- The TUI can now open files and hunks in configured external programs, with multi-file selection, user-defined macOS apps, and per-extension defaults\n- The TUI can now discard multiple branches at once\n- The TUI now supports `--remember-selection`, restoring the previous selection when reopened\n- TUI diffs now use Catppuccin syntax highlighting\n- Fixes tab indentation in TUI diffs\n\n## Fixes\n\n- Fixes web links for self-hosted forges that use a custom port\n- Fixes an issue where failed cherry-picks could fail silently\n- Fixes merge handling so adjacent edits to the same file are detected as conflicts, matching Git's behavior\n- Bitbucket: Fixes an issue where pull requests created through GitButler omitted default reviewers\n","pub_date":"2026-07-30T18:14:02+00:00","platforms":{"linux-aarch64":{"signature":"dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVUck9FSStpbTFYWUUzcWhJQ2xIck50TzJ3MWpqRkFENmpJcXJQdkRuT09jNDMrMWJSSDM1WnMxYWVOc0E0TlpSQlhINEdaTzJsdGN6KzY5Rzd1N3U1cU1ESGlDMkNYR3dJPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzg1NDEwOTcxCWZpbGU6bGludXgvYWFyY2g2NC9idXQKVjlnZFUxSUVCOE5pZ2ozSXVTRHdObzVyNFIxb1lmNXp3UXB2ZGxFVVNDOTNJZlkzWXltc0hicjBSTmM1dVJiMG4xbXBESEhGbzF1UzRTejQ2QjNMRHc9PQo=","url":"https://releases.gitbutler.com/releases/release/0.22.0-3180/linux/aarch64/but"},"linux-x86_64":{"signature":"dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVUck9FSStpbTFYWU1FdEI0eDNYYWN4NXBPdGVla0dLUDN3aWRYNkxDMzliZ21tVHI0Q1l0WkVFbjd4dzA3bUtSTjc1RkNPSkViKzRZbmp5cDFvaTlXR0NVSlBwcmxncmc4PQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzg1NDEwOTkzCWZpbGU6bGludXgveDg2XzY0L2J1dApWVDRFMDdrN3U1SElWeG00UDhRemw4WmhUU2VRcnZqY2F6NlZVSG9wM3RJUWpNQjhBWE0zdXVDWTIvU05UMG9WTjFrNWtDeW90VjYvQTdJMnBmWEhEUT09Cg==","url":"https://releases.gitbutler.com/releases/release/0.22.0-3180/linux/x86_64/but"},"darwin-aarch64":{"signature":"dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVUck9FSStpbTFYWUFEWktHTTUzb0pMYWFhcjVtMnVvRVI0SlluL05Da0NzYkgvMGZ2RWFPSFJpYmtNZHh2VmRIRnZIcXRrd0sxR2ZFbzhKMHR3WllNdmhYbUQ1VXFxRGdRPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzg1NDA5MzY0CWZpbGU6R2l0QnV0bGVyLmFwcC50YXIuZ3oKRk1MNXMyUWtmWWNZdTJSdTZqKzJ6ZXRPczJqMFUzZ1BDMFNvTVpGWWM4VC9Sa25hU2IxMnIyd0VHYWdabEg0QzY5cEdZZ1AwZStrOU9DSzVtYzExQkE9PQo=","url":"https://releases.gitbutler.com/releases/release/0.22.0-3180/macos/aarch64/GitButler.app.tar.gz"},"darwin-x86_64":{"signature":"dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVUck9FSStpbTFYWU5tUWx0Qm1PUXhXdDY4a3FxSFVUUFVDQW1Id1lzNHpCaWY5SzNla1RLVEdBMndubHd2TnJuQjFGNDJ6VkZJWm51b1dNNXZCN2F1QXozbFhoZmVucHdrPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzg1NDA5NTUzCWZpbGU6R2l0QnV0bGVyLmFwcC50YXIuZ3oKaDRhdDVFbEVnd1VwZ0hqRFR3eVBNVUhzU3UrYlBDdjRSelBnckJOVXNMUkZqc3gxK0lHWUxQaS9OWitBOFJ3bDM5VXpsR2dGNXNnNGQ1bnZBU3o2QlE9PQo=","url":"https://releases.gitbutler.com/releases/release/0.22.0-3180/macos/x86_64/GitButler.app.tar.gz"},"windows-x86_64":{"signature":"dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVUck9FSStpbTFYWUw1RXJGcVNZSTdpb3FaQUlQaFdVanNRTWtyb1h2dHlOdkI4WWUyT3krYmFJT0tySmZoNWN0eE9Yc09pNkd3YUMwN2xjZkl0ZkRTaTNSaWtsVHJvSEFjPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzg1NDEwNzQ5CWZpbGU6R2l0QnV0bGVyXzAuMjIuMF94NjRfZW4tVVMubXNpLnppcApreGZLalVGZ1gydjAxQ2FPTytLZFdpZmFObDBxQTl6dVhYUS91Z1FrUDFCWWR5d2NoMXdRdmpoNk5EaXY0dHJHQi9wVEtZWTRDTGZQYUtVemlGTndBdz09Cg==","url":"https://releases.gitbutler.com/releases/release/0.22.0-3180/windows/x86_64/GitButler_0.22.0_x64_en-US.msi.zip"}}}