release/0.21.0

gitbutlerapp/gitbutlerrelease/0.21.0Jul 6, 2026by krlvi

AI Summary

Introduced a 'push to main' workflow to skip pull requests and added AI support for resolving conflicted commits, along with GitLab merge request application capabilities.

Key Highlights

  • Enabled 'push to main' workflow allowing branches to be landed directly onto targets without opening PRs.
  • Added AI support for resolving conflicted commits via a right-click option.
  • Improved ability to apply GitLab merge requests to the workspace.
  • Removed `but merge` command in favor of `but land <branch> --yes`.

Breaking Changes

  • Removed `but merge` command.

New Features

  • 'Push to main' workflow.
  • AI conflict resolution.
  • GitLab merge request application.

Full Release Notes

## Support for "push to main" / "skip the pull request" workflows

You can now land a branch straight onto its target eg. `origin/main`, without ever opening a pull/merge request.
In the desktop app this is enabled in the project settings (Git stuff) or during project setup. In the CLI this is done with `but land <branch>`.

## Changes

- Added a feature for resolving conflicted commits with AI (right click option) if AI is enabled for the project
- You can now apply to the workspace GitLab merge requests, including merge requests from forks

## Fixes

- Fixes an issue where undoing a change could leave spurious uncommitted changes behind
- Fixes an issue where stacking one branch onto another could fail with an "Invalid parent delimitation"
- Fixes an issue where the upstream integration modal could break while branch data was being refreshed
- You can now scroll the list of steps in the upstream integration modal
- Fixes a GitHub-specific issue where pull requests from forks could use the wrong SSH URL
- Fixes an issue where a checkout could remove a directory when a file was expected in its place

## CLI

- `but land <branch>` lands an applied branch directly onto its target, skipping the pull request
- `but merge` has been removed — `but land <branch> --yes` now covers it
- `but commit` and `but amend` now report which branch and commit each rejected change depends on
- `but resolve <commit>` now has an `--ai` flag for auto-resolving conflicted commits

## TUI

- Significantly improved performance with navigating large diffs
- The detail view now shows diff stats
- Arrow keys now work the same as `hjkl`
- Commit details now show the change ID
- Adds a jump mode for quickly moving around the interface

**Full Changelog**: https://github.com/gitbutlerapp/gitbutler/compare/release/0.20.4...release/0.21.0

## Downloads

Download bins from https://gitbutler.com/