release/0.22.2

gitbutlerapp/gitbutlerrelease/0.22.2Aug 28, 2026by krlvi

AI Summary

A substantial update introducing new TUI capabilities for branch management and a refactored CLI, alongside numerous fixes for pull request handling and workspace synchronization.

Key Highlights

  • Introduced a new branch mode in the TUI allowing users to discard, create, search, and move branches directly within the interface.
  • Refactored CLI commands, renaming `but diff --tui` to `but tui --diff` and removing deprecated commands like `but diff --no-tui`.
  • Fixed multiple issues regarding GitHub and GitLab pull request loading, non-UTF-8 file conflicts, and slow fetch/push operations.
  • Workspace updates now fast-forward local target branches when their remote branches advance.

Breaking Changes

  • Renamed `but diff --tui` to `but tui --diff`.
  • Removed `but diff --no-tui` and `but config ui` commands.

New Features

  • TUI branch mode with support for discarding, creating, searching, and moving branches.
  • CLI aliases `c`, `m`, and `s` for `commit`, `move`, and `squash`.

Full Release Notes

## Changes
- Updating the workspace now fast-forwards a local target branch like `main` after its remote branch advances

## Fixes
- GitHub repositories with 100 or more open pull requests now refresh correctly as pull request activity changes
- GitLab: An open merge request with no head commit no longer breaks merge request loading
- Edit mode no longer crashes on conflicts in non-UTF-8 files or treats those conflicts as resolved
- Workspace syncs no longer fail when a remote the workspace does not use cannot be fetched
- Uncommitted changes now load correctly when staged and unstaged changes overlap
- Slow fetch, push, and clone operations are no longer cancelled after two minutes
- Pull request and merge request information stays visible when GitHub, GitLab, or Bitbucket credentials are missing or a refresh fails due to a network error
- Onboarding no longer gets stuck when no Git identity is configured
- Restoring operation history now keeps the full stack when duplicate branch names exist across stacks
- Unapplying a stack no longer fails when its branch names also exist in another stack
- Updating a branch from upstream no longer fails with "BUG: Add edge introduces a cycle" after a local upstream merge
- Pull requests are no longer shown as "not mergeable" while merge status is still loading or temporarily unavailable

## CLI
- `but diff --tui` is now `but tui --diff`
- `but diff --no-tui` and `but config ui` have been removed

## TUI
- Press `b` in the TUI to enter branch mode, where branches can now be discarded
- You can now create a new branch and switch to it, including positioning it above or below another branch
- Adds branch search, so you can find an existing branch and switch to it
- Commits can now be moved to a new branch

## New Contributors
* @macgyver13 made their first contribution in https://github.com/gitbutlerapp/gitbutler/pull/15611

**Full Changelog**: https://github.com/gitbutlerapp/gitbutler/compare/release/0.22.1...release/0.22.2

## Downloads
Download bins from https://gitbutler.com/