workmux 并行开发实战:从 add 到 merge 的完整工作流清单
【免费下载链接】workmuxgit worktrees + tmux windows for zero-friction parallel dev项目地址: https://gitcode.com/gh_mirrors/wo/workmux
workmux 是一款把git worktrees + tmux 窗口捆绑管理的开源并行开发工具:一条workmux add命令即可创建独立开发环境,一条workmux merge命令即可完成合并与全量清理。本文带你走通从创建 worktree 到合并收尾的完整实战流程,零冲突、零切换分支,特别适合多 AI Agent 并行写代码的场景 🚀
为什么需要 workmux 并行开发?
传统 Git 流程下,切换任务意味着git stash、切分支、重跑环境。而 git worktrees 允许同一仓库的多个分支同时检出于不同目录。workmux 在此之上做了三件关键的事:
- 一个任务一个窗口:每个 worktree 自动配一个同名 tmux 窗口,含独立终端状态、编辑器、开发服务器和 AI Agent;
- 环境自动就绪:新 worktree 自动拷贝
.env、软链node_modules、跑post_create钩子,不再"新建即损坏"; - 一条命令收尾:
workmux merge完成合并、删 worktree、关窗口、删分支的全生命周期清理。
💡 workmux 默认使用 tmux,也支持 kitty、WezTerm、Zellij 作为终端复用后端。
快速安装与环境准备
brew install raine/workmux/workmux # Homebrew(macOS/Linux) # 或 cargo install workmux # Cargo然后在项目里跑一次workmux init(可选),生成.workmux.yaml配置文件,自定义窗格布局、初始化钩子与文件操作。不配置也能开箱即用,workmux 内置了合理默认值。
第一步:用 workmux add 创建并行工作区
在 tmux 窗口内执行:
workmux add user-auth一条命令背后自动完成 7 件事(完整逻辑见 add 命令实现):
- 基于分支名生成 handle(如
feature/auth→feature-auth) - 在
<项目>__worktrees/user-auth目录创建 git worktree - 执行文件拷贝/软链操作(如
.env、node_modules) - 运行
post_create钩子(装依赖、建数据库等) - 创建 tmux 窗口
wm-user-auth - 按配置铺好窗格布局(编辑器 + Agent + 开发服务器)
- 自动把光标切到新窗口
几个实战高频参数:
| 场景 | 命令 |
|---|---|
| 交给 AI Agent 干 | workmux add feat -p "实现用户登录" |
| 后台创建不打断当前工作 | workmux add feat -b |
| 把当前未提交改动搬过去 | workmux add feat --with-changes |
| 一次给多个 Agent 各建一个 | workmux add feat -a claude -a gemini |
| 从 PR 检出一个工作区 | workmux add --pr 123 |
| 预览将做什么(不创建) | workmux add feat --dry-run |
创建多个独立工作区时,只需重复add,各窗口互不干扰——这就是"并行"的全部秘密。
第二步:并行开发期间如何掌控全局?
多个窗口同时跑着 Agent,靠什么盯进度?workmux 提供三层监控手段:
①workmux list一览状态
workmux list输出包含每个 worktree 的分支、Agent 状态(🤖 工作中 / 💬 等待输入 / ✅ 完成)、窗口是否存在、是否有未合并提交。加--pr还能显示 PR 检查状态。
② Dashboard 看板:审查改动、直接给 Agent 发消息
workmux dashboardDashboard 支持按d查看 WIP 差异、按i进入输入模式直接回复 Agent 提问、按R一键批量清理已合并/已删除的工作区,是并行开发中的"指挥中心"。
③ Sidebar 侧边栏:常驻的轻量状态条
workmux sidebar在 tmux 中常驻显示所有 worktree 的 Agent 状态、git 差异统计和 PR 信息,不打断当前工作流,适合常驻开启。
进阶:让主 Agent 替你分发任务
安装官方技能(workmux setup --skills)后,可以在对话中用/worktree技能把任务委托给新 worktree 中的 Agent,它会自动写好 prompt 文件并执行workmux add,参见 worktree 技能定义:
> /worktree 实现我们讨论过的缓存层多任务需要按顺序合并、全程自动监控时,用/coordinator技能让主 Agent 负责派发、等待、审查和合并的全生命周期,你完全不用手动盯。
第三步:workmux merge 一键合并并全量清理
开发完成后,在对应 worktree 窗口内直接执行:
workmux merge不带参数时自动识别当前分支,随后自动完成 8 步收尾:检查未提交改动 → 提交已暂存内容 → 合并到 main → 关 tmux 窗口 → 删 worktree 目录 → 删本地分支。常用变体:
workmux merge user-auth # 合并指定分支 workmux merge user-auth --rebase # 先 rebase 保持线性历史 workmux merge user-auth --squash # 压缩为单个提交 workmux merge user-auth --keep # 先合并、暂不清理,验证后再 workmux remove workmux merge subtask --into parent # 合并进父分支(stacked 工作流)不想手动操作?给 Agent 装上 /merge 技能,输入/merge即可:自动提交(带上下文感知的 commit message)→ rebase 到基分支 → 智能解决冲突 → 执行workmux merge。相关命令实现可参考 merge 模块 与 workflow 合并逻辑。
替代路线:PR 工作流收尾
如果团队走 Pull Request 评审,合并发生在远端。流程是:push 分支、创建 PR(可用/open-pr技能 让 Agent 基于对话上下文写好描述),PR 合并后本地清理:
workmux remove feature-123 # 清理指定 worktree workmux rm --gone # 一键清理所有远端分支已删除的 worktree--gone特别实用:PR 合并后远端分支自动删除,这条命令会批量找出并移除这些"孤儿"工作区。
完整工作流清单(可收藏版)
| 阶段 | 命令 | 说明 |
|---|---|---|
| 初始化 | workmux init | 生成项目配置.workmux.yaml |
| 创建 | workmux add <branch> | worktree + tmux 窗口一步到位 |
| 分发任务 | /worktree <任务> | 委托给并行 Agent(技能) |
| 监控 | workmux list/workmux dashboard | 状态一览 / 交互看板 |
| 同步基线 | workmux rebase | 把分支 rebase 到保存的基分支 |
| 恢复 | workmux open <name>/workmux resurrect | 重开窗口 / 崩溃后恢复 |
| 合并 | workmux merge | 合并 + 清窗口 + 删 worktree + 删分支 |
| 弃掉 | workmux remove --keep-branch | 只删环境保留分支 |
| 批量清理 | workmux rm --all/--gone | 全清 / 清理已合并 |
更多模式(会话模式、命名布局、沙箱运行 Agent 等)可查阅 官方文档指南 与 工作流参考。
写在最后
workmux 的设计哲学是"构建在你已有的工具上":tmux 负责窗口、git 负责 worktree、你的 Agent 负责写代码,它只负责把三者无缝粘合成一条从add到merge的零摩擦流水线。当并行任务从 1 个变成 5 个,你会真切体会到:上下文切换的成本,应该只等于切一个标签页 🎯
【免费下载链接】workmuxgit worktrees + tmux windows for zero-friction parallel dev项目地址: https://gitcode.com/gh_mirrors/wo/workmux
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考