如何使用Git WorkTree , 实现ai 并行写代码 合并代码
可以,这正是 git worktree 很适合的场景:
一个主仓库,拉出多个独立工作目录,让你自己和 AI 各自在不同分支上并行改代码,最后再合并。
先说结论:
Sourcetree 不算真正支持“创建/管理 worktree 的专用 UI”;更稳妥的方式是:
- 用 Git 命令行创建/删除/查看 worktree
- **把每个 worktree 目录单独加入 Source(Atlassian Community)e / rebase 合并回来
Atlassian 社区里官方成员明确说过:Sourcetree 不显式支持 worktree,但它可以和 worktree 一起工作;你可以把 worktree 作为额外书签加入 Sourcetree。Git 官方文档也说明,git worktree 就是让一个仓库同时拥有多个工作树,每个工作树可检出不同分支。Sourcetree 的发布说明里还能看到它后来修过一些 core.worktree 相关兼容问题,但这不等于它有完整 worktree 管理界面。(Atlassian Community):worktree 是什么
正常一个仓库同一时间只能检出一个分支。git worktree 可以让你这样:
- 主目录:
repo-main→main - 工作树A:
repo-feature-api→feature/api - 工作树B:
repo-feature-ui→feature/ui - 工作树C:
repo-ai-test→feature/ai-refactor
它们共享同一个 Git 仓库对象数据,不像多次 clone 那样重复占空间。Git 官方文档就是这样定义的。(Git)rcetree 里怎么“创建 / 管理” worktree
现实做法
创建和删除用 Git 命令行,查看和日常提交/拉取/合并用 Sourcetree。
1)先准备主仓库
假设你的主仓库在:
D:\projects\myapp
先保证主仓库干净:
git status
git pull
2)创建一个新的 worktree
例如你想让 AI 并行做“登录页优化”:
git worktree add ..\myapp-login -b feature/login-improve origin/main
含义是:
- 在上一级目录创建
myapp-login - 新建并检出分支
feature/login-improve - 以
origin/main为起点
Git 官方文档说明了 git worktree add <path> [<commit-ish>] 的基本语义。(Git)
git worktree add ..\myapp-login -b feature/login-improve main
如果本地已有 main 且最新,就够用了。
3)把这个 worktree 加进 Sourcetree
在 Sourcetree 里:
- 选择 Add / Open
- 选中刚刚创建的目录:
D:\projects\myapp-login - 把它加入书签
因为 Atlassian 官方说法就是:把 worktree 当作额外 bookmark/repo 打开。(Atlassian Community)yapp`(主目录)
myapp-login(worktree)myapp-payment(另一个 worktree)myapp-refactor(另一个 worktree)
它们在 Sourcetree 里看起来像多个仓库,但底层仍然是一个 Git 仓库的多个工作树。
4)查看所有 worktree
git worktree list
你会看到类似:
D:/projects/myapp abc1234 [main]
D:/projects/myapp-login def5678 [feature/login-improve]
D:/projects/myapp-ai 789abcd [feature/ai-refactor]
5)删除某个 worktree
先确保里面没有未提交改动,然后:
git worktree remove ..\myapp-login
如果目录已经手工删了,可以清理记录:
git worktree prune
这些都是 Git 官方 git-worktree 文档中的标准命令。(Git)rcetree 下怎么“管理”更顺手
Sourcetree 对 worktree 更像是“能打开”,不是“专门管理”。
所以建议你这样组织:
目录结构建议
D:\projects\
myapp-main\
myapp-ai-api\
myapp-ai-ui\
myapp-hotfix\
命名建议
让目录名直接表达任务:
myapp-ai-authmyapp-ai-reportmyapp-bugfix-ordermyapp-refactor-cache
Sourcetree 书签分组
可以按用途分组:
myapp-mainmyapp-feature-*myapp-ai-*
这样一眼能看出哪个工作树是你写、哪个给 AI 写。
四、怎么用 worktree 实现“AI 并行写代码”
这是重点。
传统方式的问题
如果你在一个目录里不断切分支,让多个 AI 会话同时写,很容易出事:
- 分支切来切去
- 未提交改动互相覆盖
- AI 读到的是旧文件
- 一个会话改了,另一个会话上下文已经过期
worktree 的优势
每个 AI 会话固定一个目录、一个分支、一个任务。
这样最稳。
五、推荐的并行开发模型
模型:1 个主线 + N 个 AI 工作树
主线目录
myapp-main
- 只用来看主干、拉最新代码、最终合并
- 尽量少直接开发
AI 工作树 1
myapp-ai-auth
- 分支:
feature/ai-auth - 任务:登录鉴权
AI 工作树 2
myapp-ai-report
- 分支:
feature/ai-report - 任务:报表导出
AI 工作树 3
myapp-ai-test
- 分支:
feature/ai-test-fix - 任务:补测试 / 修 lint
六、最稳的实操流程
方案 A:功能隔离并行
适合不同模块并行开发。
1)从主分支创建多个 worktree
git worktree add ..\myapp-ai-auth -b feature/ai-auth origin/main
git worktree add ..\myapp-ai-report -b feature/ai-report origin/main
git worktree add ..\myapp-ai-test -b chore/ai-test origin/main
2)分别打开
- Sourcetree 打开 3 个目录
- IDE 也分别打开 3 个目录
- 每个 AI 会话只处理一个目录
3)给 AI 的任务要足够窄
比如:
- AI-1:只改
auth/和登录流程 - AI-2:只改
report/模块 - AI-3:只补测试,不碰业务逻辑
这样冲突最少。
4)每个 worktree 各自提交
git add .
git commit -m "feat: improve auth flow"
git push -u origin feature/ai-auth
5)回主线合并
可以在 Sourcetree 里 merge,也可以走 PR。
方案 B:同一需求拆子任务
适合一个大需求拆成多个子分支。
比如“订单系统升级”拆成:
feature/order-apifeature/order-uifeature/order-tests
最后先把子分支合到一个集成分支,再合主干。
七、合并代码怎么做最稳
原则 1:不要让多个 AI 同时改同一批文件
最容易炸的是:
- 同时改
package.json - 同时改同一个 service
- 同时改同一份路由/配置
- 同时改共享类型定义
原则 2:先小步提交,再合并
每个 AI 任务都尽量做到:
- 单一职责
- 小 diff
- 可编译
- 有测试
原则 3:优先走 PR,不要盲目本地硬合
因为 AI 写的代码最大问题不是“能不能写出来”,而是:
- 风格不一致
- 边界条件漏掉
- 表面通过、实际破坏接口契约
八、推荐合并顺序
方法 1:都从 main 拉出,然后分别合回 main
适合互不影响的任务。
main
├─ feature/ai-auth
├─ feature/ai-report
└─ chore/ai-test
方法 2:先合到集成分支,再统一验证
适合有耦合的任务。
main
└─ integration/order-upgrade
├─ feature/order-api
├─ feature/order-ui
└─ feature/order-tests
流程是:
- 各子分支完成
- 合入
integration/order-upgrade - 跑测试、修冲突
- 最后合入
main
这个对 AI 并行更安全,因为你有一个“缓冲层”。
九、你在 Sourcetree 里实际怎么操作合并
虽然 worktree 创建建议用 CLI,但合并你可以在 Sourcetree 做:
方式一:在某个工作树里 Pull / Merge
例如打开 myapp-main:
- 先 pull
main - 选择 merge
feature/ai-auth - 解决冲突
- commit merge
- push
方式二:通过 PR 平台合并
如果你们有 GitHub / GitLab / Bitbucket,更推荐:
- 每个 AI 分支 push
- 你自己 review
- CI 通过后再 merge
这比本地直接 merge 更稳。
十、给 AI 并行写代码的任务切分原则
这部分最关键,比工具还重要。
适合并行的任务
- UI 页面改造
- 测试补齐
- 文档生成
- 非核心模块重构
- 独立接口开发
- lint / 类型修复
不适合并行的任务
- 数据库 schema 大改
- 核心共享模型重构
- 大规模目录迁移
- 全局配置升级
- 同一模块深度耦合改动
最佳切分维度
优先按这些切:
-
按模块切
auth/report/payment -
按层切
api/ui/test -
按文件边界切
保证尽量不碰同文件
十一、我建议你直接照抄的工作流
1)主仓库
cd D:\projects\myapp
git pull origin main
2)创建 3 个 worktree
git worktree add ..\myapp-ai-auth -b feature/ai-auth origin/main
git worktree add ..\myapp-ai-report -b feature/ai-report origin/main
git worktree add ..\myapp-ai-test -b chore/ai-test origin/main
3)在 Sourcetree 里把这 3 个目录都加进去
4)分别交给不同 AI / 不同 IDE 窗口
- 窗口1:只改鉴权
- 窗口2:只改报表
- 窗口3:只补测试
5)每个 worktree 独立提交
git add .
git commit -m "feat: ..."
git push -u origin <branch-name>
6)回主目录集成
cd D:\projects\myapp
git checkout main
git pull
然后在 Sourcetree 里逐个 merge,或者走 PR。
7)任务结束后清理
git worktree list
git worktree remove ..\myapp-ai-auth
git worktree remove ..\myapp-ai-report
git worktree remove ..\myapp-ai-test
git worktree prune
十二、几个很容易踩的坑
坑 1:一个分支不能同时检出到多个 worktree
同一个分支通常不能被多个 worktree 同时占用;要并行就建不同分支。Git worktree 就是这么设计的。(Git)库和 worktree 里同时改同一任务
会把你自己绕晕。
坑 3:AI 改代码前先锁边界
告诉 AI:
- 只能改哪些目录
- 不能改哪些文件
- 不能升级依赖
- 必须保留哪些接口
坑 4:共享文件最容易冲突
例如:
package.jsonpom.xmlgo.modroutes.tssettings.py- 公共类型文件
这些最好指定只让一个分支改。
坑 5:Sourcetree 能打开,不代表所有操作都对 worktree 完美友好
Atlassian 的公开说法一直更接近“可用但非专门支持”,所以创建/销毁 worktree 还是建议 CLI。(Atlassian Community)合你的实际结论
你前面问过“35岁程序员 + AI 焦虑”,这里反而有个正向答案:
你不要和 AI 比“谁写得快”,而要学会搭建“AI 并行生产线”。
git worktree + Sourcetree 的价值就在这:
- 你负责拆任务、控边界、做 review、做集成
- AI 在多个 worktree 里并行产出
- 你最后统一验证、合并、兜底
这已经不是“写代码的人”,而是“管理代码生产的人”。
十四、给你的最佳实践建议
如果你想把它长期用起来,我建议这套规则:
分支命名
feature/ai-xxx
fix/ai-xxx
chore/ai-xxx
目录命名
repo-ai-auth
repo-ai-report
repo-ai-test
每个 worktree 一个任务单
写在目录里的 TASK.md:
目标:
边界:
可改文件:
禁止修改:
验收条件:
这样无论你接哪个 AI,都不容易跑偏。
十五、一句话版
Sourcetree 负责“看和操作仓库”,Git CLI 负责“创建和管理 worktree”。
用多个 worktree 给多个 AI/多个 IDE 窗口分配独立分支,是实现并行写代码、最后再安全合并的最稳方案。(Atlassian Community)接给你一份:
“Windows + Sourcetree + VS Code + ChatGPT/Copilot 的 worktree 并行开发标准流程清单”,你照着配一次就能用。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)