Releases: gitbutlerapp/gitbutler
release/0.19.13
Changes & Fixes
- Fixes a Windows-specific regression from 0.19.12 where the app was not being correctly signed, causing friction with Windows Defender
- Fixes an issue where undoing a new branch creation with the operations log was not working.
- Adds an option to set ptyxis as the default terminal
TUI
- Adds the ability to directly commit into a new branch (bound to
b)
CLI
- Fixes an issue where
but commit empty --jsonwould not print anything.
New Contributors
- @Andrej730 made their first contribution in #13852
Full Changelog: release/0.19.12...release/0.19.13
Downloads
Download bins from https://gitbutler.com/
release/0.19.12
What's Changed
- Fixes a bug where the app can unexpectedly navigate to the "Configure your workspace" view
Full Changelog: release/0.19.11...release/0.19.12
Downloads
Download bins from https://gitbutler.com/
release/0.19.11
Fixes
- Fixes a regression from 0.19.10 where updating the workspace would fail with "Branches are all up to date" error
- Fixes an issue where the AI commit message generation was disabled desptie being enabled in the settings
- Fixes an issue with stacked PRs where after pushing structural changes the PR base remained stale
- Fixes an issue where failing to unapply a branch would leave the UI in a stuck state
- Fixes a Windows-specific issue with "Open in Editor" when running the app from WSL
- The app now correctly handles shallow clones
- Fixes the "but-graph inconsistent with the commit graph" issue when performing actions in the app
- Fixes an issue where creating a branch with a "#" symbol would have the hashtag filtered out
CLI
- Repeated "undo" operations now work as expected (undoing further back in history)
but reword --jsonnow correctly produces the relevant JSON outputbut redo- new command for re-apply undone operationsbut oplog listnow displays more useful descriptions of past operationsbut teardownnow supports--checkout-tooverride to specify the branch to checkout
TUI
- The TUI now updates on filesystem changes
- Repeated "undo" operations now work as expected (undoing further back in history)
- Added "redo" operation to re-apply undone operations
- Fixes a navigation bug while in move mode
New Contributors
- @robertmonka made their first contribution in #13738
- @edgarcnp made their first contribution in #13794
Full Changelog: release/0.19.10...release/0.19.11
Downloads
Download bins from https://gitbutler.com/
release/0.19.10
Security
This and the last few releases include important security fixes. Please update to 0.19.9 or newer.
Changes
- Applying of branches no longer performs an unnecessary rebase
- Adds support for multi-commit selection and operations (e.g. move, squash etc)
- Adds support for SHA-256 repositories
- Amending of commits now shows a modal if there were rejected changes (e.g. due to conflicts)
- Removes the "split branch" options from the UI (it will be back, better)
Fixes
- Fixes an issue where typing a commit message could cause the cursor to jump to the start of the line
- Fixes an issue with parsing of certain git config files
- Fixes a bug where unapplying a branch could cause uncommitted changes to appear as untracked changes
- Fixes a bug where in some cases amending a commit could cause uncommitted deletions to disappear
- Fixes an issue with updating the workspace resulting in an error "The new head names do not match the current heads"
- Fixes an issue where the app would fail if the remote has a branch named "head"
- Fixes a bug where after deleting a project an error "Asynchronous operation failed" would appear
TUI
- Adds a help modal with an overview of key binds (press
?in the TUI) - Added experimental light theme (set
EXPERIMENTAL_BUT_LIGHT_THEME=1) - Adds support for operating on multiple commits at once (e.g. move, squash etc)
- Adds an "undo" action for undoing the last operation (press
u) - When squashing multiple commits you can now choose how to combine the commit messages
- Improved "back" behavior when pressing
Esc - Fixes a bug where the file list was auto-closing after performing a rub action
CLI
- Improved color consistency (e.g. but diff / show / commit etc)
but movenow supports moving multiple commits at oncebut applynow resolves short branch namesbut absorbnow removes--new(it will be back, better)but mcpno longer has the--internalflagbut push--run-hooksis now replaced with--no-hooksfor disablingbut undonow correctly restores to the latest snapshotbut branch movehas been removed in favor ofbut move- removed the implicit "rub" action (e.g. running
but <id> <id>as an equivalent tobut rub <id> <id>) - fixes an issue where
but discardcould fail on multi-hunk changes - fixes an issue where
but discardcould fail to discard renaming of files - fixes an issue where
but rubto amend a file could fail to restore a previously deleted file
New Contributors
Full Changelog: release/0.19.9...release/0.19.10
Downloads
Download bins from https://gitbutler.com/
release/0.19.9
TUI
- Significant performance improvements starting and navigating in the TUI (
but tui) - It's now more intuitive to create commits at arbitrary positions above/below other commits in the stack
- Toasts are now stacked vertically
- Adds support for creating a new branch from the
[unassigned changes] - Fixes an issue where squashing a commit without a message was causing additional whitespace to be added to the commit message
- The branch picker now (press
tto open) now lists the[unassigned changes]at the top - The branch picker now has key-binds
ctrl+n/pto move up/down andctrl+[to close the picker. - Pressing
iin commit mode will use inline reword to write the commit message, for cases where you don't want to open an editor.
CLI
but status- significant performance improvements- When
but pushis executed, the app UI will be updated to reflect the new state - Fixes a windows-specific issue that was causing the CLI to crash with a stack overflow.
Fixes and Improvements
- Fixes a bug where in some cases a branch is not correctly detected as push-able
- Fixes a issue with forge integrations resulting in a "Command forge_provider not allowed by ACL" error
- Fixes a GitLab-specific issue where loading the integration would fail with "invalid type: string "...", expected internally tagged enum GitLabAccount"
- Fixes an issue where in rare cases of the remote tracking branch being deleted, committing locally would fail
- Fixes a UI issue causing a "null is not an object (evaluating 'u.close')" error popup
- It is now easier to distinguish different self-hosted forge integrations (instance URL is shown)
- Improved error handling when diffing deleted resources
Full Changelog: release/0.19.8...release/0.19.9
Downloads
Download bins from https://gitbutler.com/
release/0.19.8
Changes
- Adds OpenRouter as a new AI provider in the app
- Adds loading states when squashing and uncommitting
- Conflicted commits now explicitly add a marker in the commit message
- Improved displaying of Pull Request CI/Mergeability state
- Panel resizers in the the app are now easier to grab
- Improved error message propagation when creating branches
- Improved moving of commits across stacks - conflicts are now detected ahead of time
- You can now configure "Kitty" for "open in terminal"
- Improved performance when entering "edit"/"conflict resolution" mode
Fixes
- Fixes an issue with parsing leading space in directory names
- Fixes a windows fetch/push issue with some alternative SSH clients (e.g. PuTTY)
- Fixes an issue where successful pre-push hooks were incorrectly showing failure
- Fixes an issue with the undo / restore functionality and conflicted commits
- Fixes a GitLab issue with setting the "draft" flag for MRs
TUI
- The
but tuisubcommand is no longer "hidden" from--help - Adds support for moving hunks
- Adds support for discarding changes
- The details/preview pane can now be resized
- While editing a commit message, the message can be opened in a text editor
- Simplified branch creation (simply pressing b)
- Adds support for easy amending into a selection (shift+r for reverse rub)
- Adds support for invoking any but command with
: - Adds branch picker with fuzzy filtering (press t)
CLI
- GitButler skill -
but skill installnow has an option to install in.agents - Linux: fixes an issue preventing the
but guisubcommand from opening the GUI correctly
New Contributors
- @RemiKalbe made their first contribution in #12626
Full Changelog: release/0.19.7...release/0.19.8
Downloads
Download bins from https://gitbutler.com/
release/0.19.7
TUI
GitButler now has a terminal UI (in addition to the CLI)!
If you love keybindings, try it out with the but tui command and feel free to share any feedback in #tui on Discord.
Changes
- Improved performance when exiting edit mode
- Assigning / staging changes to branches is no longer constrained by commit dependencies
- Improved file selection behavior with when using the tree view
- Improved submodule support: it is now possible to add submodules as GitButler projects
- Improved diff rendering performance with large files
- Fixes a bug where in some cases the app could stop updating state from file changes
- Fixes an issue where oplog revert did not handle branches with no commits
- Fixes an issue where moving a branch to another stack was erroneously changing the stack order
- Fixes an issue with the absorb functionality where some changes were not being committed
CLI
- Significant improvements to Agentic use (update your SKILL file with
but skill install) - Fixes an issue where concurrent commits would cause a "Database locked" error
- Fixes an issue where
but amendandbut absorbwere breaking pre-push hooks - Renamed
but branch tear-off <branch>tobut branch move --unstack <branch> - Added
but cleanwhich removes empty branches in the workspace but movenow unifies moving of commits and branches (including stacking/unstacking)but uncommitnow has a--discardflag which drops the content in addition to uncommitting
New Contributors
- @DanielEScherzer made their first contribution in #12891
- @ichoosetoaccept made their first contribution in #12886
Full Changelog: release/0.19.6...release/0.19.7
Downloads
Download bins from https://gitbutler.com/
release/0.19.6
Changes
- File previews now only show the selected file by default (change in Settings -> Appearance -> All-in-one diff)
- File diffs can now be popped out in a floating window
- Adds a option to preview SVGs as images (Settings -> Appearance -> Preview SVG)
- Improved rendering performance of diffs
- Fixes an issue with image diffing when switching between files
- Fixes an issue with the operations history where "unapply" stack was not being correctly tracked
CLI
- Updated
butskill files for improved Claude Code and Codex performance (update withbut skill install) but stack- new command for moving branches on top of others to stack them (alsobut branch moveas an alias to the same functionality)- Fixes an issue "askpass broker not initialized"
New Contributors
- @OliverJAsh made their first contribution in #12663
- @danilax86 made their first contribution in #12767
- @dslatkin made their first contribution in #12800
Full Changelog: release/0.19.5...release/0.19.6
Downloads
Download bins from https://gitbutler.com/
release/0.19.5
What's Changed
- Improve list scrolling speed
but: Uncommitted hunks can now be addressed by their index (e.gbut rub <file>:0 <branch|commit>)- Fixes an issue with
but update installwhich was failing due to missing bin - Fixes a UI bug where in some situations the interface would freeze up after clicking on commits
Full Changelog: release/0.19.4...release/0.19.5
Downloads
Download bins from https://gitbutler.com/
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/