Thanks to visit codestin.com
Credit goes to gitbutler.com

0.18.7

Latest release 23 January 2026

Changes

  • Uncommitted changes can now be "absorbed" into the top-most or the commits they have a dependency on. Right click on changes -> "Absorb" will present a summary of operations first.
  • Fixes an issue in reading very old projects resulting in a "ChangeId variant is no longer supported" error
  • Fixes an Windows issue where locked files don't show up as uncommitted in status output

CLI changes

  • but config for setting up various aspects of the app
  • but commit now executes relevant hooks if present and includes a --no-hooks flag

Experience GitButler’s newest features before anyone else. ⋆˚₊ Get Nightly ☽˚.⋆

0.18.6

22 Jan 2026

Changes

  • Fixes an error "No matching entry found in secure storage"
  • Updates to the UI padding and styles

CLI Changes

  • but commit with no branches creates a canned branch
  • but push no longer prompts for a branch if there is only one
  • but push will now detect commits in conflicted state and prevent pushing them
  • but absorb now supports --dry-run
  • but setup new command to setup even repos without a remote for GitButler use
  • but init is now removed (replaced by setup)
  • but merge - while in 'no-remote' mode this will merge applied branches into the target
  • but teardown for going back to normal git mod

0.18.5

20 Jan 2026

Changes

  • Fixes a bug with the Claude Code UI in the workspace where agent changes were not being correctly assigned to the respective branch
  • Adds table support in places where markdown is being rendered
  • Creating a branch with invalid characters now normalized the name without error

CLI

  • Operations with but rub, but amend, but uncommit, but squash, but stage will now prompt if there is an ambiguity of the provided identifier (eg. File and branch have the same name)
  • Operations but branch delete, but unapply and but restore now prompt for confirmation (with --force still being available)
  • but pr new no longer prompts for confirming the branch if there is only one branch

0.18.4

19 Jan 2026

Changes

  • Drag-and-drop operations now indicate what the operation would be on hover while dragging
  • Adds drag and drop support for hunks to create a new branch on drop
  • Adds an option for configuring allowed image sources under the CSP config (applicable for self-hosted forges)
  • Ctrl + a now selects all files in lists (similar to Cmd + a on Mac)
  • Amending commits no longer resets author dates (commit dates are still updated, same as git)
  • Improved Gerrit support with including a fallback URL generation the pushing a commit is a noop
  • Renaming a branch to the same name is now a noop instead of an error
  • Adds a new setting under "Appearance" for displaying file names first in the path
  • Improved diff rendering performance
  • Linux: added docs for Linux specific workarounds and fixes in https://github.com/gitbutlerapp/gitbutler/blob/master/LINUX.md

Fixes

  • Fixes a bug causing several operations to error out with "Stack is uninitialised"
  • Fixes a Windows specific issue with poor performance with file watching under WSL
  • Fixes a high CPU usage under Linux
  • Fixes a bug preventing the creation of a branch underneath an existing stack
  • Fixes an issue that was preventing the discarding of binary files
  • Fixes an issue with Cursor hooks under Windows
  • Fixes a GitLab specific issue where the rebase and squash method of merging did not work from the app
  • Fixes a Claude Code UI bug where WebFetch permissions are stored in a wrong format

CLI specific notes

Changed

  • Adds async fetching from remotes as well as forge info (e.g. PRs, CI)
  • Invoking but without arguments is now defaulting to but status (configurable with but alias)
  • Slow operations like pushing and fetching now have progress output
  • Improved but help output
  • but status no longer invokes a pager
  • but status now includes PR and CI information by default
  • but status now displays context-aware hints (disable by aliasing but status --no-hint)
  • but status --upstream now shows upstream commits as well as merge-ability status of branches
  • but status now indicates Git mode and but switch-back reverts the repository to GitButler managed branch (necessary until https://github.com/gitbutlerapp/gitbutler/issues/11866 is done)
  • Fixes an issue where but status --files was assigning duplicate short IDs
  • but commit now supports --file for providing commit message
  • but absorb now provides detailed output of where changes went and why
  • but absorb - fixed an issue where untracked files did not get absorbed correctly
  • but rub now supports short IDs from but diff that can be used for assigning, amending etc
  • but push - if no branch is specified, it now prompts the user
  • but push --dry-run provides a summary of what would be pushed

Renamed / aliased commands

  • but snapshot was moved to but oplog snapshot
  • but review is now but pr
  • but describe is now but reword
  • but base update is now but pull
  • but base check is now but pull --check
  • but fetch is now an alias to but pull --check
  • but uncommit <commit/file-in-commit> is now an alias to the equivalent but rub
  • but amend <file> <commit> is now an alias to the equivalent but rub
  • but stage <file/hunk> <branch/stack> is now an alias to the equivalent but rub
  • but unstage <file/hunk> is now an alias to the equivalent but rub
  • but squash is now an alias to the equivalent but rub with an optional flag for picking a commit message

New commands

  • but diff - a new command for previewing diffs in files changes as well as branches and commits
  • but show displays commit and branch details
  • but alias allows setting up custom aliases (e.g but stfu -> but status --files --upstream)
  • but resolve for resolving merge conflicts
  • but discard removes/drops uncommitted changes
  • but update check check for app updates
  • but update suppress for suppressing app update hints
  • but pr new now includes a commented section with a list of commits and modified files
  • but pull now has more detailed output and has support for the --json flag
  • but reword now has a --format option for fixing the 72 char wrapping of a commit

0.18.3

15 Dec 2025

Changes

  • Adds support for image preview and diffing (split and side-by-side views)
  • Improved commit reordering graphics making the drop zones harder to miss
  • Workspace rules have been redesigned and are now in the bottom left section
  • Workspace rules created by Claude or Cursor hooks are no longer hidden from the list
  • Adds support for the core.hooksPath config when handling pre-push hooks

CLI

  • but describe now takes -m for in-line message
  • but status/rub - the ids are now less likely to run into ambiguity issues
  • but review publish has been simplified (removed TUI)
  • Fixes Windows specific issue with setting up but.exe

Fixes

  • Fixes a GitLab specific bug where creating a MR could fail with an "AbortSignal.timeout is not a function" error
  • Fixes a GitLab issue when switching between projects with different GitLab servers/credentials
  • Fixes a bug where committing a .docx file interrupts file watching
  • Fixes an issue with hard wrapping in the commit input
  • Fixes an issue where a dot in an SSH username is incorrectly encoded when cloning a repo
  • Fixes an issue with Codegen templates incorrectly adding "[object Promise]" in the input field
  • Fixes a rare issue resulting in the workspace failing to load with "ref-names must either be present in the first commit, or be the segment name"

0.18.2

29 Nov 2025
  • Improved UX of branch reordering, making creating / splitting stacks of branches more intuitive
  • Fixes a bug with commit message / PR description inputs preventing creating new lines (paragraphs)
  • Codegen - fixes a bug with full commands not being shown in permission requests

0.18.0

20 Nov 2025

Codegen

  • Prompting is now done directly from the workspace (for a specific branch). The Codegen tab on the left has been removed
  • The chat UX has been updated for better ergonomics and better display of tool calls
  • Updated permissions system - better granularity and control for what the agent can perform
  • Prompt history can now be accessed via arrow up / down of the input
  • The prompt input has improved rendering for code snippets and referenced files
  • Files and commits from the workspace can be dragged into prompts to reference them

Changes

  • The "Create Branch" button has been moved to the top right of the app
  • When creating a branch there is now the option to have it placed in the left-most position
  • In lists of files (e.g. uncommitted) it is now possible to select all (with Cmd+A)
  • Release notes (when updating) can now display of previous release notes
  • Added syntax highlighting for .cc files

Fixes

  • Fixes an issue with repository auto-fetch
  • Fixes a bug allowing for stale selection in the UI after a branch is deleted

CLI

  • Added but . or but /path/to/repo which opens the GitButler app for the provided path
  • but status now shows additional upstream data
  • but status now shows worktree information if applicable
  • but status --json output has been simplified for better scriptability
  • but log has been removed (as its functionality overlapped with status)
  • Fixes an issue where in some cases but rub would run into ID ambiguity unnecessarily

0.17.6

7 Nov 2025

Changes

  • Added syntax highlighting for 12 additional languages (Go, Elixir, Swift, YAML and more)
  • Reduced content shift when previewing file diffs

Fixes

  • Fixes a bug where the app was not auto-fetching as configured
  • Fixes a GitHub Enterprise specific bug with setting the correct host

CLI changes

  • Introduces new command but absorb which amends uncommitted changes in the appropriate commits
  • Improved error message when forge credentials are invalid
  • The --json flag can now be put after subcommands
  • but status file paths in the JSON output are now UTF-8 strings instead of byte arrays
  • but branch now performs but branch list instead of but branch --help
  • Rub - it is now possible to invoke but <id> <id> as a shorthand to but rub <id> <id>
  • Fixes an issue where but status --review was not showing the PR number
  • but review publish can now take an id

0.17.5

6 Nov 2025
  • Improved the layout of collapsed lanes
  • You can now drag folders when using the tree file view option
  • File list/tree view option is now lane-specific
  • CLI: but review now has a prompt for picking a branch
  • Fixes issues when scrolling in lists (eg. Claude Code messages)
  • Fixes an issue with the visual abbreviation of long file paths
  • Gerrit: fixes a bug where the push options were not being displayed
  • Gerrit: fixed an issue where integrated commits were not being detected as integrated
  • Gerrit: fixed a bug where "update workspace" was failing