release/0.21.0

getzep/graphitirelease/0.21.0Jul 6, 2026by krlvi

AI Summary

Introduces a new 'push to main' workflow and AI-powered conflict resolution, replacing the merge command with the land command and significantly improving TUI performance.

Key Highlights

  • Support for 'push to main' and 'skip PR' workflows.
  • Added AI conflict resolution for conflicted commits.
  • CLI command changes: `but land` replaces `but merge`.
  • Significantly improved TUI performance for large diffs.

Breaking Changes

  • Removal of `but merge` command (use `but land --yes` instead)

New Features

  • AI conflict resolution for commits
  • GitLab merge request application support

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/