在同一个 repo 中存在多个分支需要同时进行开发工作,如何保证多份代码并行开发?

新增 working tree

git worktree add [-f] [--detach] [--checkout] [--lock [--reason <string>]] [-b <new-branch>] <path> [<commit-ish>]

  1. # 当前项目所在目录路径
  2. $ pwd
  3. /Users/zen/Developer/tms-web
  4. # 基于 master 分支新建 feat-8609 分支,并新建一个 worktree 目录
  5. $ git worktree add -b feat-8609 ../Temp/tms-web master
  6. # 现有 master、feat-8609 两分支,需要将 feat-8609 创建一个 worktree 目录
  7. $ git worktree add ../Temp/tms-web feat-8609
  8. # 新建 worktree 目录路径
  9. $ pwd
  10. /Users/zen/Developer/Temp/tms-web
  11. # 列出所有的 working tree 的详细资
  12. $ git worktree list
  13. /Users/zen/Developer/tms-web ff1f9e6 [master]
  14. /Users/zen/Developer/Temp/tms-web ff1f9e6 [feat-8609]

移除 working tree

  1. # 列出所有的 working tree 的详细资料
  2. $ git worktree list
  3. /Users/zen/Developer/tms-web ff1f9e6 [master]
  4. /Users/zen/Developer/Temp/tms-web ff1f9e6 [feat-8609]
  5. # 移除一个 working tree
  6. $ git worktree remove /Users/zen/Developer/Temp/tms-web
  7. # 列出所有的 working tree 的详细资料
  8. $ git worktree list
  9. /Users/zen/Developer/tms-webff1f9e6 [master]
  10. # 若手动删除了一个 working tree(没有通过 git worktree remove)
  11. # Git 并不能识别该 working tree已删除
  12. $ git worktree prune