Update from Sync Service

This commit is contained in:
FNS Service
2026-04-27 11:06:32 +08:00
parent 304ef12861
commit d5e6d40989
16 changed files with 4597 additions and 0 deletions

View File

@@ -0,0 +1,322 @@
# GitButler 完全研究
> Git 的现代替代品:堆叠分支 + AI 集成 + 无限撤销
>
> 归档2026-04-25
---
## 📊 项目概览
| 属性 | 值 |
|------|------|
| **仓库** | gitbutlerapp/gitbutler |
| **Stars** | 20,643 |
| **语言** | Rust (后端) + Svelte/TypeScript (前端) |
| **框架** | Tauri |
| **创建** | 2023-01-31 |
| **许可** | Fair Source2 年后转 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 编程工具 |
---
## 🤖 CLIbut 命令
### 安装
```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*