# GitButler 完全研究 > Git 的现代替代品:堆叠分支 + AI 集成 + 无限撤销 > > 归档:2026-04-25 --- ## 📊 项目概览 | 属性 | 值 | |------|------| | **仓库** | gitbutlerapp/gitbutler | | **Stars** | 20,643 | | **语言** | Rust (后端) + Svelte/TypeScript (前端) | | **框架** | Tauri | | **创建** | 2023-01-31 | | **许可** | Fair Source(2 年后转 MIT) | | **下载** | gitbutler.com/downloads | --- ## 🎯 核心定位 ``` GitButler = Git 的现代 GUI + CLI 替代品 ↓ 底层依然是 Git ↓ 但体验更简单、更强大 ``` **一句话**:在现有 Git 仓库上直接运行,提供更友好、更强大的版本控制体验。 --- ## 🏗️ 技术架构 ``` ┌──────────────────────────────────┐ │ 用户界面 │ │ ┌──────────┐ ┌──────────────┐ │ │ │ GUI │ │ CLI │ │ │ │ (Svelte) │ │ (but) │ │ │ └────┬─────┘ └──────┬───────┘ │ └───────┼───────────────┼──────────┘ │ │ ┌───────┴───────────────┴──────────┐ │ Rust 后端引擎 │ │ (版本控制逻辑 + Git 操作) │ └───────────────┬──────────────────┘ │ ┌───────────────┴──────────────────┐ │ Git │ │ (底层存储) │ └──────────────────────────────────┘ ``` | 组件 | 技术 | |------|------| | **GUI** | Tauri + Svelte + TypeScript | | **CLI** | Rust (but 命令) | | **后端** | Rust | | **底层** | Git(直接操作现有仓库) | --- ## 🚀 七大核心特性 ### 1. 堆叠分支(Stacked Branches) ``` main └── feature-a └── feature-b ← 基于 feature-a └── fix-c ← 基于 feature-b ``` **解决的问题**: - 在开发功能 B 时,需要基于还没合并的功能 A - 传统 Git 需要频繁 cherry-pick 或 rebase - GitButler 自动处理堆叠和重新堆叠 **编辑任何提交**:修改堆叠中间的提交,上方分支自动重新堆叠。 ### 2. 并行分支(Parallel Branches) ``` 同时工作: - feature-a (branch-1) - bug-fix (branch-2) - experiment (branch-3) 不需要切换分支! ``` **解决的问题**: - 传统 Git 需要在不同分支间频繁 `checkout` - GitButler 允许同时工作,各自提交 ### 3. 提交管理(Commit Management) | 操作 | 传统 Git | GitButler | |------|---------|----------| | 修改提交 | `git commit --amend` | 拖拽 | | 拆分提交 | `git rebase -i` | 拖拽 | | 移动提交 | `git cherry-pick` | 拖拽 | | 重命名提交 | `git rebase -i` | 点击重命名 | | 撤销提交 | `git revert` | 点击撤销 | **忘掉 `git rebase -i`**:拖拽就够了。 ### 4. 无限撤销(Undo Timeline) ``` 操作日志: 09:00 - 创建了提交 "fix: bug" 09:15 - 合并到 main 09:30 - 推送 10:00 - 发现错误 → 一键撤销! ``` **解决的问题**: - Git 的 `git reflog` 很难用 - GitButler 记录所有操作和变更 - 一键撤销或回退任何操作 ### 5. 冲突处理(Conflict Resolution) ``` rebase 永远成功! 提交可以标记为"冲突中" 随时以任何顺序解决冲突 ``` **解决的问题**: - Git rebase 冲突时会中断 - GitButler 允许冲突存在,标记后继续工作 - 随时解决冲突,不阻塞其他操作 ### 6. 代码托管集成(Forge Integration) | 平台 | 功能 | |------|------| | **GitHub** | PR 创建/更新、CI 状态、分支列表 | | **GitLab** | MR 创建/更新、Pipeline 状态 | | **Bitbucket** | 支持中 | **认证一次**,就能: - 一键创建/更新 PR - 查看 CI 状态 - 管理远程分支 ### 7. AI 集成(AI Tooling) | AI 功能 | 说明 | |---------|------| | 提交信息 | AI 自动生成 commit message | | 分支命名 | AI 建议分支名 | | PR 描述 | AI 生成 PR 描述 | | Agent Hooks | 支持 Claude Code、Cursor 等 AI 编程工具 | --- ## 🤖 CLI:but 命令 ### 安装 ```bash # macOS brew install gitbutler # 或从 releases 下载 ``` ### 常用命令 ```bash # 初始化项目 but init # 创建分支 but branch create feature-abc # 提交变更 but commit -m "fix: bug" # 查看状态 but status # AI 生成提交信息 but ai commit-message # 创建 PR but pr create ``` --- ## 🆚 与 Git GUI 工具对比 | 特性 | GitButler | SourceTree | GitKraken | GitHub Desktop | |------|-----------|-----------|----------|---------------| | 堆叠分支 | ✅ | ❌ | ❌ | ❌ | | 并行分支 | ✅ | ❌ | ❌ | ❌ | | 拖拽提交管理 | ✅ | ❌ | 部分 | ❌ | | 无限撤销 | ✅ | ❌ | ❌ | ❌ | | 冲突标记 | ✅ | ❌ | ❌ | ❌ | | AI 集成 | ✅ | ❌ | ❌ | ❌ | | CLI | ✅ | ❌ | ❌ | ❌ | | 跨平台 | ✅ | ✅ | ✅ | ✅ | | 开源 | Fair Source | ❌ | ❌ | ✅ | | 价格 | 免费 | 免费 | 付费 | 免费 | --- ## 💡 典型工作流 ### 场景一:功能开发 ``` 1. gitbutler open . 2. 创建分支 "feature-user-auth" 3. 编写代码 → 拖拽文件到暂存区 4. AI 生成提交信息 → 提交 5. 推送 → 一键创建 PR 6. 查看 CI 状态 → 合并 ``` ### 场景二:多任务并行 ``` 1. 同时在 3 个分支工作: - bug-fix (紧急) - feature-a (计划内) - experiment (探索) 2. 不需要切换分支 3. 各自提交,互不干扰 ``` ### 场景三:AI 编程助手 ``` 1. Claude Code 生成代码 2. GitButler 自动检测变更 3. AI 生成提交信息和分支名 4. 一键创建 PR ``` --- ## 🔧 安装 ### GUI | 平台 | 方式 | |------|------| | **macOS** | Homebrew / DMG | | **Windows** | MSI / Winget | | **Linux** | AppImage / Deb | ### CLI ```bash brew install gitbutler # 或 cargo install gitbutler-cli ``` --- ## 📝 许可说明 | 条款 | 说明 | |------|------| | **当前** | Fair Source License | | **含义** | 可以使用、查看源码、贡献,但不能构建竞品 | | **2 年后** | 自动转为 MIT License | | **实际** | MIT + 2 年非竞争条款 | --- ## 📊 评价 ### 优点 - ✅ **堆叠分支**:复杂分支管理变得简单 - ✅ **拖拽操作**:告别 rebase -i - ✅ **无限撤销**:不怕误操作 - ✅ **并行分支**:多任务不切换 - ✅ **AI 集成**:自动化提交信息、PR 描述 - ✅ **CLI 支持**:适合终端用户和 AI 代理 - ✅ **现有仓库直接使用**:不需要迁移 ### 注意点 - ⚠️ Fair Source 许可(非严格开源) - ⚠️ 相对较新(2023 年创建) - ⚠️ 部分高级 Git 操作仍需命令行 - ⚠️ Bitbucket 支持还在开发中 ### 适用场景 - 日常需要管理多个分支的开发者 - 使用 AI 编程工具(Claude Code/Cursor)的团队 - 希望简化 Git 操作的团队 - 需要频繁 rebase/变基的场景 --- ## 🔗 资源 | 资源 | 链接 | |------|------| | **官网** | https://gitbutler.com | | **GitHub** | https://github.com/gitbutlerapp/gitbutler | | **文档** | https://docs.gitbutler.com | | **下载** | https://gitbutler.com/downloads | | **Discord** | https://discord.gg/MmFkmaJ42D | | **博客** | https://blog.gitbutler.com | --- *整理:知识库管理员 | 归档:2026-04-25*