一 worktree 的基本概念和操作
再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 - walterlv的专栏 - CSDN博客
再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 - walterlv
二 语法速览
-
最简单的写法:
git worktree add <新路径>
将基于当前分支,新建一个 worktree 目录,新的分支名就是新建目录的名称。 -
新建一个指定分支
git worktree add <新路径> -b <新分支名>
将基于当前分支,新建一个 worktree 目录,新的分支名是指定的名称。 -
基于指定分支新建一个指定分支
git worktree add <新路径> -b <新分支名> <指定分支名>
将基于指定分支,新建一个 worktree 目录,新的分支名是指定的名称。
三 注意事项
-
<新路径>
新路径一般是类似../myproject-bugfix
这样的命名,是相对路径,注意,这里一定是两个点:
../myproject-bugfix
表示在当前目录的父目录新建,这样才是与原工程目录平级。(当前,你当前得在原工程的跟目录中。)
总之,注意相对路径。 -
使用 git reset --hard 重置新的 worktree
如果使用了git worktree add <新路径>
最简单的方法新建,通常分支需要重新命名,基于的分支也要改。
可使用git reset --hard <要基于的分支名>
重置到想要的分支,使用git branch -D <想要删除的分支名>
删除自动创建的与目录名相同的分支。
四 其它废话
相比复制多个仓库,肯定是 worktree 的方式更高效。
当然,worktree 不允许两个 worktree 使用同一个分支。如果有这个需要怎么办?新建一个分支,reset 到目标分支,再基于这个新分支工作,效果一样。
但如果你经常需要在两个目录中使用同一个分支,那么可能是分支管理或工作方式需要改进。
另外,不使用的 worktree 尽早删除,并运行 git worktree prune
清理。