概述
本 Issue 记录使用 Git Worktree 进行并行开发的流程和最佳实践,以支持在不切换分支的情况下同时进行多个功能的开发。
Git Worktree 简介
Git Worktree 允许在同一个仓库中同时检出多个分支到不同的目录,避免频繁切换分支带来的上下文切换成本。
当前 Worktree 设置
- 主工作树:
/opt/src/sxl(main 分支)- UniApp 工作树:
/opt/src/sxl_worktree(try-uniapp 分支)并行开发流程
1. 创建新功能分支的 Worktree
创建新分支并添加 worktree
git worktree add /opt/src/sxl_ -b
或基于现有分支创建 worktree
git worktree add /opt/src/sxl_
2. 开发工作流
- 主线开发: 在
/opt/src/sxl目录进行主分支的维护和修复- 功能开发: 在对应的 worktree 目录进行功能开发
- 互不干扰: 每个 worktree 有独立的工作区,可以同时运行不同的开发服务器
3. 提交和推送
在对应的 worktree 目录中
cd /opt/src/sxl_worktree git add . git commit -m "feat: UniApp 实现" git push -u origin try-uniapp
4. 合并流程
回到主工作树
cd /opt/src/sxl git merge try-uniapp
或创建 PR 进行代码审查
5. 清理 Worktree
功能开发完成后删除 worktree
git worktree remove /opt/src/sxl_worktree
最佳实践
✅ 推荐做法
- 命名规范: worktree 目录名使用
项目名_功能名格式- 及时清理: 功能合并后及时删除不需要的 worktree
- 独立环境: 每个 worktree 维护独立的 node_modules 和构建产物
- 定期同步: 定期将主分支的更新合并到功能分支
❌ 避免做法
- 不要在 worktree 之间共享 node_modules
- 不要在 worktree 中切换分支(每个 worktree 绑定一个分支)
- 不要忘记推送 worktree 中的更改
当前并行开发任务
- try-uniapp 分支: UniApp 多端适配实现[ ] main 分支: 现有 Next.js 网站的维护和优化
相关命令速查
列出所有 worktree
git worktree list
添加 worktree
git worktree add
删除 worktree
git worktree remove
清理过期的 worktree 信息
git worktree prune
注意事项
- 确保有足够的磁盘空间,每个 worktree 都是完整的工作副本
- 在删除 worktree 前确保所有更改已提交和推送
- 使用
.gitignore排除 worktree 特定的临时文件🏷️ Labels: workflow, git, development 🔗 Related: #12 (UniApp 开发计划)