Releases: gitbutlerapp/gitbutler
release/0.19.4
Changes
- Conflicted commits: It is now a lot less confusing if a commit in conflicted state is ever checked out or pushed
- Conflict markers generated by the app are now more clear
- Adds support for converting PRs to/from "draft" PRs
- Operations log: auto commit operations are now shown in the oplog
- Husky hooks now need to be explicitly enabled on per-project basis in the settings
- Claude Code UI: fixes an issue where in some cases tool call was slow
- Minor performance improvements when producing diffs
- Fixes an issue where in some cases the live file watching was not working
- Fixes a number of scrolling issues
- Fixes an issue with restoring from a snapshot where the reload could cause double revert
- Fixes an issue where removing a project was leading to a 'project not found' screen
- Fixes an issue where in some cases in-progress commit message title is lost when to/from floating mode
CLI
but prAdded subcommandsauto-merge,set-draftandset-readybut branchFixed and issue where the branch name in some case was being truncatedbut branchAdds flag--emptyfor showing branches with no commits and remotebutnow comes with a simple built in editor (If nocore.editoris set in git config)- It is now possible to use path prefixes to refer to multiple files for mutations like
rub,amendand more - Improved handling of user input prompts
- Output from commands (eg. status) now uses a (configurable) pager
- It is now possible to create PRs from forks
- Fixes an issue where commit tittles were naively truncated
- Fixes a bug where committing a renamed file only committed the "new" path
New Contributors
- @smitmartijn made their first contribution in #12414
- @craigmayhew made their first contribution in #12443
- @jwstover made their first contribution in #12623
- @gonchihernandez made their first contribution in #12448
Full Changelog: release/0.19.3...release/0.19.4
Downloads
Download bins from https://gitbutler.com/
release/0.19.3
Linux CLI 🐧
It is now possible to install the GitButler CLI via the installer script at https://gitbutler.com/cli
Changes
- Improved app performance - the file watcher is now able to completely avoid subscribing to ignored files
- Adds a menu bar option to open the project in the terminal (under "Project")
- Exiting edit mode now warns about uncommitted changes
- Fixes a Linux specific issue with showing files in the file manager
- Fixes an issue where in some case pushing stacked branches displays an incorrect graph
- Fixes a bug preventing the creation of branches from a specific commit
- Fixes a bug where symlinks in the repo mess with the status output
- Fixes an issue with scrollbars not functioning right in small popups
CLI
but statussimplified "base" information in the outputbut statusIDs are now bold and no longer underlinedbut pr newis now more Markdown friendly- Improved handling of [Y/n] prompts
- Fixes an issue where Ctrl/Cmd+C is not handled correctly in interactive prompts
New Contributors
- @foxfirecodes made their first contribution in #12344
- @sebastianhuus made their first contribution in #11878
Full Changelog: release/0.19.2...release/0.19.3
Downloads
Download bins from https://gitbutler.com/
release/0.19.2
What's Changed
but status- IDs for uncommitted files are now more stable (not changing between mutations)but pick- It is now possible to select multiple commits to be cherry pickedbut resolve- Fixes an issue preventing resolving of conflictsbut skill install- The interactive mode now offers global install as wellbut absorb- Fixes an issue where an incorrect file count is shown
New Contributors
Full Changelog: release/0.19.1...release/0.19.2
Downloads
Download bins from https://gitbutler.com/
release/0.19.1
Changes
- Added a settings toggle for previewing only one file at a time (appearance settings)
- The GitLab integration now supports multiple accounts
- Fixes an issue where stacked PR footers were not being correctly maintained
- Fixed scroll jitter and lag when expanding items in diff lists and when scrolling quickly
- Fixed an issue where newly created branches could be incorrectly associated with stale remote tracking branches
CLI Changes
but diffnow has a--tuioption for interactive diff viewer (set it as default viabut config ui)but pr newnow checks auth upfront instead after message composition- Fixes an issue where
but rubtreated files with dashes as ranges - Most mutations commands like
rub,move,amendnow have--status-afterflag - You can now configure GitLab accounts via
but config - Improved Agents SKILL.md file - update it with
but skill check --update
New Contributors
Full Changelog: release/0.19.0...release/0.19.1
Downloads
Download bins from https://gitbutler.com/
release/0.19.0
Announcing the GitButler CLI
- Most GitButler operations are now available via a CLI https://docs.gitbutler.com/cli-overview
Changes
- Adds an "auto-commit" right click option on uncommitted files
- It is now possible to drag changes to start a commit
- Improved diff rendering and layout
- Fixes an issue (again) with Cmd+A for selecting text in input fields
CLI changes
but pick- allows for cherry picking from branches not in the workspacebut status- fixes an issue where in some cases PR and CI data was not being shownbut rub- improved docs covering all possible combinationsbut absorb- now has--newflag which will create new commits above the dependency commitsbut commit- the--fileflag was renamed to--message-fileand--fileswas renamed to--changesbut branch unapplyis nowbut unapplybut branch applyis nowbut apply
Full Changelog: release/0.18.8...release/0.19.0
Downloads
Download bins from https://gitbutler.com/
release/0.18.8
Changes
- Updated diff view file diff previews are now in a continuous scrollable list rather than a drawer
- Updated the "assign" terminology to "stage" throughout the app
- The app now menages a special pre-commit hook to prevent commits outside of GitButler when using the GitButler workspace branch
- LM Studio support - you can now use LM Studio as a local LLM provider for AI-powered features, in addition to existing Ollama and cloud options
- The CLI can now authenticate via deeplink URLs, streamlining the login flow when connecting to your GitButler account.
Fixes
- Cmd/Ctrl+A now correctly selects all text in input fields instead of triggering other shortcuts
- Fixed duplicate "absorb" item appearing in context menus
- Fixed auto-scroll regression in virtual lists
- Fixed dropzone deactivation when dragging files
CLI changes
but commitnow supports a--filesoption to commit specific files or hunks by their CLI IDs without staging first.but commitnow supports an--aiflag to generate commit messages.but newhas been replaced withbut commit emptyfor inserting blank commits with explicit--beforeor--afterflags.but squashnow accepts commit ranges, branch names, and comma-separated listsbut squashnow supports an--aiflag to generate consolidated commit messagesbut moveis a new command for moving commits between positions in a stack, across stacks, or moving individual committed files between commits.but update installcommand added to update the CLI directly from the command line with optional version selection:but update install [nightly|release|<version>](MacOS only)but skill installcommand added to install GitButler CLI documentation for AI coding assistants
Full Changelog: release/0.18.7...release/0.18.8
Downloads
Download bins from https://gitbutler.com/
release/0.18.7
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 configfor setting up various aspects of the appbut commitnow executes relevant hooks if present and includes a--no-hooksflag
Full Changelog: release/0.18.6...release/0.18.7
Downloads
Download bins from https://gitbutler.com/
release/0.18.6
Changes
- Fixes an error "No matching entry found in secure storage"
- Updates to the UI padding and styles
CLI Changes
but commitwith no branches creates a canned branchbut pushno longer prompts for a branch if there is only onebut pushwill now detect commits in conflicted state and prevent pushing thembut absorbnow supports --dry-runbut setupnew command to setup even repos without a remote for GitButler usebut initis now removed (replaced by setup)but merge- while in 'no-remote' mode this will merge applied branches into the targetbut teardownfor going back to normal git mod
Full Changelog: release/0.18.5...release/0.18.6
Downloads
Download bins from https://gitbutler.com/
release/0.18.5
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 stagewill now prompt if there is an ambiguity of the provided identifier (eg. File and branch have the same name) - Operations
but branch delete,but unapplyandbut restorenow prompt for confirmation (with --force still being available) but pr newno longer prompts for confirming the branch if there is only one branch
Full Changelog: release/0.18.4...release/0.18.5
Downloads
Download bins from https://gitbutler.com/
release/0.18.4
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
butwithout arguments is now defaulting tobut status(configurable withbut alias) - Slow operations like pushing and fetching now have progress output
- Improved
but helpoutput but statusno longer invokes a pagerbut statusnow includes PR and CI information by defaultbut statusnow displays context-aware hints (disable by aliasingbut status --no-hint)but status --upstreamnow shows upstream commits as well as merge-ability status of branchesbut statusnow indicates Git mode andbut switch-backreverts the repository to GitButler managed branch (necessary until #11866 is done)- Fixes an issue where
but status --fileswas assigning duplicate short IDs but commitnow supports --file for providing commit messagebut absorbnow provides detailed output of where changes went and whybut absorb- fixed an issue where untracked files did not get absorbed correctlybut rubnow supports short IDs frombut diffthat can be used for assigning, amending etcbut push- if no branch is specified, it now prompts the userbut push --dry-runprovides a summary of what would be pushed
Renamed / aliased commands
but snapshotwas moved tobut oplog snapshotbut reviewis nowbut prbut describeis nowbut rewordbut base updateis nowbut pullbut base checkis nowbut pull --checkbut fetchis now an alias tobut pull --checkbut uncommit <commit/file-in-commit>is now an alias to the equivalentbut rubbut amend <file> <commit>is now an alias to the equivalentbut rubbut stage <file/hunk> <branch/stack>is now an alias to the equivalentbut rubbut unstage <file/hunk>is now an alias to the equivalentbut rubbut squashis now an alias to the equivalentbut rubwith 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 commitsbut showdisplays commit and branch detailsbut aliasallows setting up custom aliases (e.gbut stfu->but status --files --upstream)but resolvefor resolving merge conflictsbut discardremoves/drops uncommitted changesbut update checkcheck for app updatesbut update suppressfor suppressing app update hintsbut pr newnow includes a commented section with a list of commits and modified filesbut pullnow has more detailed output and has support for the --json flagbut rewordnow has a--formatoption for fixing the 72 char wrapping of a commit
New Contributors
- @alerque made their first contribution in #11555
- @Rettend made their first contribution in #11622
- @Mrmaxmeier made their first contribution in #11631
- @godnight10061 made their first contribution in #11699
- @senekor made their first contribution in #11804
Full Changelog: release/0.18.3...release/0.18.4
Downloads
Download bins from https://gitbutler.com/