gitbutler

gitbutlerapp活跃维护

基于 Git 的图形化版本控制客户端,用 Tauri/Rust/Svelte 构建,支持虚拟分支和并行工作流,让多任务开发不必频繁切换分支。

The GitButler version control client, backed by Git, powered by Tauri/Rust/Svelte

release/0.23.2发布于 2026-11-02 18:32 UTC21,951star +7 / 7 天1,049fork同步于 2026-11-10 05:22 UTC

怎么上手

README 里没有找到可直接复制的安装命令

README 里没有找到可直接复制的安装命令,请到 README 或官方文档查看安装方式。

硬件要求

README 没有说明硬件要求。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本release/0.23.2
  1. release/0.23.2最新正式版2026-11-02 · 2026-11-02 18:32 UTC

    ##Fixes

    • Fixes commits and amendments disturbing staged files or hiding later file edits
    • Fixes problems caused by missing target-branch tracking: older projects failing to open, missing pull request details and skipped remote updates
    • Fixes the app not refreshing after external worktree changes and showing errors for worktrees removed outside the app
    • Fixes merged pull requests disappearing from worktree branches after updating the workspace
    • Fixes undo leaving newly created branches behind or failing to restore deleted branches after Git garbage collection
    • GitLab: Fixes merge request listing on older instances and authentication with server URLs ending in /api/v4/
    • Bitbucket: Fixes pull request creation and browser links for remotes using ssh.bitbucket.org
    • Creating an independent branch from the target now checks it out without unnecessarily switching to the workspace
    • Fixes unstacking failures with linked worktrees and branches disappearing from the native app when unstacked

    CLI

    • but agent setup now supports Amp; but agent uninstall removes GitButler skills and instructions from coding agents
    • Claude desktop agents can now enable Auto-fix for pull requests created with but pr new in workspace mode
    • but worktree new --above now accepts branch names, IDs and Git revisions; worktree removal and archive commands also accept checkout paths
    • but commit -b can now create a branch and commit from a detached linked worktree
    • Running but inside an archived linked worktree now unarchives it automatically
    • but branch delete now handles branches outside the workspace and protects branches checked out in linked worktrees
    • but resolve gains clearer recovery hints, stdin input with apply -F - and checks for leftover conflict markers; resolved branches now return success
    • but diff now accepts committed hunk IDs and reports file statuses correctly in JSON output
    • but branch show --ai now uses the configured AI model
    • but pull avoids unnecessary worktree updates, and --update worktrees leaves the main checkout unchanged
    • but config target origin/main now creates the local tracking branch when needed
    • but open is removed; use but gui or but .. Retired but branch new --anchor now points to --above in its error hint

    Experimental

    Highlights from the native app, available in the settings under "experimental":

    • Adds integrated terminals for each checkout, with agent status indicators and drag-and-drop support
    • Adds a commit graph showing the workspace, linked worktrees and target history
    • Adds a TUI-style keyboard layout and modes for moving, committing and squashing changes; custom bindings are no longer available in the native app
    • Adds worktree creation, reordering and updates, plus configurable inactivity grouping (two days by default)
    • Adds in-app pull request editing, auto-merge on creation and clearer CI checks
    • Improved commit and diff editing, with inline rewording, single-file diffs and copying files or hunks as Git patches

    New Contributors

    Full Changelog: https://github.com/gitbutlerapp/gitbutler/compare/release/0.23.1...release/0.23.2

    Downloads

    Download bins from https://gitbutler.com/

  2. release/0.23.12026-10-28 · 2026-10-28 19:53 UTC
    查看更新说明

    Fixes

    • Fixes projects failing to load after choosing gitbutler/workspace as the target branch (a regression from 0.23.0)
    • Fixes pushes failing when the target branch has no upstream and the pushed branches have no open pull requests (a regression from 0.23.0)
    • Fixes phantom uncommitted changes after staging, renaming or deleting files outside GitButler
    • Discarding a file deletion now restores its committed content, even if a different version was staged
    • Fixes upstream merge commits showing the wrong pull request title and link
    • Fixes worktree removal incorrectly showing a "Worktree … does not exist" error
    • Fixes the target branch picker failing with "Expected object of kind commit but got tree" when a remote ref points to a tree

    CLI

    • but pr new now lets Claude desktop enable Auto-fix for pull requests opened from their checked-out branch
    • but apply --json no longer includes the workspaceRefCreated field
    • but push <branch> --dry-run now lists every branch that will be pushed, including branches beneath it in the stack
    • but branch no longer lists the checked-out branch twice after unapplying down to one branch
    • but apply no longer reports an already-applied branch as newly applied
    • but commit -b errors in linked worktrees now suggest omitting -b to commit on the worktree's own branch

    Experimental

    • A new native version of the app is now available under “experimental” in settings.

    Full Changelog: https://github.com/gitbutlerapp/gitbutler/compare/release/0.23.0...release/0.23.1

    Downloads

    Download bins from https://gitbutler.com/

  3. release/0.23.02026-10-27 · 2026-10-27 17:33 UTC
    查看更新说明

    Work in any branch without gitbutler/workspace

    GitButler now works in any Git repo, without the need to run a setup or to be on gitbutler/workspace ref. All app operations work as normal. GitButler switches to gitbutler/workspace only when you apply a second parallel branch and moves back when you return to one.

    Worktree support

    You can now work with linked Git worktrees directly in GitButler. Worktrees created by other apps show up in the CLI status or as lanes in the GUI and support most GitButler operations. For example you (or your agent) can move individual changes, commits or branches to and from worktrees as needed. Parallel branches are light & fast while worktrees offer full code isolation so each tool can be used situationally. Worktrees that already exist when you upgrade start archived. Bring them in from the new Worktrees page in Project settings or with the but CLI. Discarding changes in a worktree can’t be undone yet.

    Changes

    • Projects now use a local target branch, so GitButler can be used on repos without a remote
    • Faster refreshes in Git LFS repositories and after undo, plus faster workspace updates in repositories with many pack files
    • Commit signing now honors more Git settings, including X.509 signing and gpg.ssh.defaultKeyCommand
    • SHA-256 repositories now support commit signing, rewording, undo and push
    • Workspace update previews no longer sign temporary commits or disable signing when a preview signature fails
    • GitButler no longer installs its own pre-commit and post-checkout hooks
    • Branches can now be dragged below the last branch in a stack

    CLI

    • zz is now @ for uncommitted changes
    • but land is now but merge, and land still works as an alias
    • but setup is gone because but works in any repository. but init replaces but setup --init
    • but review, but branch new --anchor and ID ranges such as g0-h2 are removed. Use but pr, --above and single IDs instead

    Worktrees

    • but status lists worktrees with their own IDs and marks ones behind the target
    • but worktree creates, lists, archives, restores and removes worktrees. but worktree new can start at a commit with --above or on an existing branch outside the workspace
    • but pull --update <workspace|worktrees> picks what to update. A worktree whose branch merged upstream moves to a new branch at the latest target commit
    • but move <branch> --above <branch> moves a branch between a worktree and the workspace

    New in this release:

    • but split moves files or hunks out of a commit into a new commit above it
    • but diff <commit> shows hunk IDs, so but squash, but move, but uncommit and but discard can work on single hunks of a commit
    • but merge and but pull work without a remote, using the local target branch
    • but merge --ff-only refuses merges that can't fast-forward
    • but commit, but squash, but move and but split read the message from a file or stdin with -F/--file
    • but status marks the checked-out branch with [HEAD]
    • b is a default alias for but branch

    TUI

    • You can squash several marked commits into one
    • You can archive (a) and unarchive (u) worktrees
    • Mark committed hunks in the details view to discard, squash or move them
    • Move a commit's files to another commit, a branch or a new branch
    • In move mode, b moves commits onto a new branch above the selected one
    • Undo (u) works from details mode
    • The status view scrolls with the mouse wheel, and clicking a row selects it
    • but tui starts faster, especially on Linux
    • Windows: ? and : now respond

    Fixes

    • Fixes the diff preview jumping to another file when the file list changes
    • Fixes workspace loading failures after commits made outside GitButler or a concurrent fetch
    • Failed workspace updates now show the error and a retry button; unrelated target or remote history now comes with recovery g
  4. release/0.22.32026-08-29 · 2026-08-29 07:58 UTC
    查看更新说明

    Fixes

    • Fixes an incorrect GitHub or GitLab authentication error when syncing a project without a connected forge integration
    • Fixes GitHub pull request publishing failures showing "422 Unprocessable Entity" instead of GitHub's explanation of what needs fixing
    • Fixes a 0.22.2 regression were in some cases the app uses a fallback committer value instead of the configured Git identity

    Full Changelog: https://github.com/gitbutlerapp/gitbutler/compare/release/0.22.2...release/0.22.3

    Downloads

    Download bins from https://gitbutler.com/

  5. release/0.22.22026-08-28 · 2026-08-28 14:10 UTC
    查看更新说明

    Changes

    • Updating the workspace now fast-forwards a local target branch like main after its remote branch advances

    Fixes

    • GitHub repositories with 100 or more open pull requests now refresh correctly as pull request activity changes
    • GitLab: An open merge request with no head commit no longer breaks merge request loading
    • Edit mode no longer crashes on conflicts in non-UTF-8 files or treats those conflicts as resolved
    • Workspace syncs no longer fail when a remote the workspace does not use cannot be fetched
    • Uncommitted changes now load correctly when staged and unstaged changes overlap
    • Slow fetch, push, and clone operations are no longer cancelled after two minutes
    • Pull request and merge request information stays visible when GitHub, GitLab, or Bitbucket credentials are missing or a refresh fails due to a network error
    • Onboarding no longer gets stuck when no Git identity is configured
    • Restoring operation history now keeps the full stack when duplicate branch names exist across stacks
    • Unapplying a stack no longer fails when its branch names also exist in another stack
    • Updating a branch from upstream no longer fails with "BUG: Add edge introduces a cycle" after a local upstream merge
    • Pull requests are no longer shown as "not mergeable" while merge status is still loading or temporarily unavailable

    CLI

    • but diff --tui is now but tui --diff
    • but diff --no-tui and but config ui have been removed

    TUI

    • Press b in the TUI to enter branch mode, where branches can now be discarded
    • You can now create a new branch and switch to it, including positioning it above or below another branch
    • Adds branch search, so you can find an existing branch and switch to it
    • Commits can now be moved to a new branch

    New Contributors

    Full Changelog: https://github.com/gitbutlerapp/gitbutler/compare/release/0.22.1...release/0.22.2

    Downloads

    Download bins from https://gitbutler.com/

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    TWEET BLUESKY DISCORD

    CI INSTA YOUTUBE DEEPWIKI

    GitButler is a powerful new Git-based version control system, designed from scratch to be simple, powerful and flexible. It is designed for ease of use and modern agentic workflows.

    It features stacked branches, parallel branches, unlimited undo, easy commit mutations, forge integrations and more.

    Works instantly in any existing Git repo as a friendlier and more powerful drop-in Git user interface replacement - for you and your agents.

    Why use GitButler instead of vanilla Git? What a great question.

    • Stacked Branches (gui, cli)
      • Effortlessly create branches stacked on other branches. Amend or edit any commit easily with automatic restacking.
    • Parallel Branches (gui, cli)
      • Organize work on multiple branches simultaneously, rather than constantly switching branches.
    • Easy Commit Management (gui, cli)
      • Uncommit, reword, amend, move, split and squash commits by dragging and dropping or simple CLI commands. Forget about rebase -i, you don't need it anymore.
    • Undo Timeline (gui, cli)
      • Logs all operations and changes and allows you to easily undo or revert any operation.
    • First Class Conflicts (gui, cli)
      • Rebases always succeed. Commits can be marked as conflicted and resolved at any time, in any order.
    • Forge Integration (gui, cli)
      • Authenticate to GitHub, GitLab, or Bitbucket to easily open and update Pull Requests, list branches, get CI statuses and more. No other tools required.
    • AI Tooling (gui, cli)
      • Use built-in AI handlers to help create commit messages, branch names, PR descriptions and more.
      • Easily install hooks or skills for all modern agent systems to level up their Git management.

    Documentation

    You can find our end user documentation at: https://docs.gitbutler.com

    Bugs and Feature Requests

    If you have a bug or feature request, feel free to open an issue, or join our Discord server.

    License

    The TLDR is that GitButler is under a Fair Source software license, meaning that you can use it, view the source, contribute, etc. You just can't build a competitor with it. It also becomes MIT after 2 years. So, MIT with an expiring non-compete clause.

    Contributing

    So you want to help out? Please check out the CONTRIBUTING.md document.

    If you want to skip right to getting the code to actually compile, take a look at the DEVELOPMENT.md file.