可以,这正是 git worktree 很适合的场景
一个主仓库,拉出多个独立工作目录,让你自己和 AI 各自在不同分支上并行改代码,最后再合并。

先说结论:

Sourcetree 不算真正支持“创建/管理 worktree 的专用 UI”;更稳妥的方式是:

  1. 用 Git 命令行创建/删除/查看 worktree
  2. **把每个 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-mainmain
  • 工作树A:repo-feature-apifeature/api
  • 工作树B:repo-feature-uifeature/ui
  • 工作树C:repo-ai-testfeature/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-auth
  • myapp-ai-report
  • myapp-bugfix-order
  • myapp-refactor-cache

Sourcetree 书签分组

可以按用途分组:

  • myapp-main
  • myapp-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-api
  • feature/order-ui
  • feature/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

流程是:

  1. 各子分支完成
  2. 合入 integration/order-upgrade
  3. 跑测试、修冲突
  4. 最后合入 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 大改
  • 核心共享模型重构
  • 大规模目录迁移
  • 全局配置升级
  • 同一模块深度耦合改动

最佳切分维度

优先按这些切:

  1. 按模块切
    auth / report / payment

  2. 按层切
    api / ui / test

  3. 按文件边界切
    保证尽量不碰同文件


十一、我建议你直接照抄的工作流

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.json
  • pom.xml
  • go.mod
  • routes.ts
  • settings.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 并行开发标准流程清单”,你照着配一次就能用。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐