release/0.21.0

azophy/sshifurelease/0.21.0Jul 6, 2026by krlvi

AI Summary

Introduces direct landing to main branches and GitLab merge request support, while removing the `but merge` command in favor of the new landing workflow.

Key Highlights

  • Support for 'push to main' / 'skip the pull request' workflows
  • GitLab merge request application support
  • AI conflict resolution feature
  • Removal of `but merge` command

Breaking Changes

  • `but merge` command removed

New Features

  • Direct branch landing to main
  • GitLab MR application
  • AI conflict resolution flag
  • Significantly improved TUI performance

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/