Last updated on Jun 10, 2022

在同一个 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