在同一个 repo 中存在多个分支需要同时进行开发工作,如何保证多份代码并行开发?
新增 working tree
git worktree add [-f] [--detach] [--checkout] [--lock [--reason <string>]] [-b <new-branch>] <path> [<commit-ish>]
# 当前项目所在目录路径
$ pwd
/Users/zen/Developer/tms-web
# 基于 master 分支新建 feat-8609 分支,并新建一个 worktree 目录
$ git worktree add -b feat-8609 ../Temp/tms-web master
# 现有 master、feat-8609 两分支,需要将 feat-8609 创建一个 worktree 目录
$ git worktree add ../Temp/tms-web feat-8609
# 新建 worktree 目录路径
$ pwd
/Users/zen/Developer/Temp/tms-web
# 列出所有的 working tree 的详细资
$ git worktree list
/Users/zen/Developer/tms-web ff1f9e6 [master]
/Users/zen/Developer/Temp/tms-web ff1f9e6 [feat-8609]
移除 working tree
# 列出所有的 working tree 的详细资料
$ git worktree list
/Users/zen/Developer/tms-web ff1f9e6 [master]
/Users/zen/Developer/Temp/tms-web ff1f9e6 [feat-8609]
# 移除一个 working tree
$ git worktree remove /Users/zen/Developer/Temp/tms-web
# 列出所有的 working tree 的详细资料
$ git worktree list
/Users/zen/Developer/tms-webff1f9e6 [master]
# 若手动删除了一个 working tree(没有通过 git worktree remove)
# Git 并不能识别该 working tree已删除
$ git worktree prune