git worktree 上手指南
一、worktree概念及应用场景
概念:worktree的意思是工作树,同一个仓库可以对应多个worktree、分支。
应用场景: 可以再多个分支同时工作并且不影响,如果遇到一套代码要对应多个产品的情况,那么worktree将会是很好的解决方案。
二、使用方法:
1、创建一个文件夹worktree,在里面再建一个文件夹content,在content里面创建test.txt,随便写点字符串。文件目录如图
2.初始化仓库——>git init ,添加——>git add . , 提交到本地仓库——>git commit -m 'first commit'。不过我比较喜欢用vscode,安装GitLens
3.使用worktree,
git worktree add [-f] [--detach] [--checkout] [--lock] [-b <new-branch>] <path> [<commit-ish>] git worktree list [--porcelain] git worktree remove [-f] <worktree> git worktree prune [-n] [-v] [--expire <expire>]
(1)简单使用:git worktree add <新路径> ,如:git worktree add ../test
输入这命令即意味着创建一个同层的文件夹、分支,名字都叫test。
(2)指定分支名称:git worktree add <新路径> -b <新分支名> 如:git worktree add ../hasOwnBranch -b ownBranch
发现多了个worktree。
(3)给新建分支指定分支:git worktree add <新路径> -b <新分支名> <指定分支名>
先修改test.txt内容,注意切换到ownBranch这个worktree对应的ownBranch再进行修改。那怎么切换worktree呢?点击这个文件夹的标志。修改完commit。以此为父本,创建新的worktree。
输入:git worktree add ../newTree -b newBranch ownBranch
如果创建的worktree没有出现,那就点击刷新一下。
切到新的 newBranch后,即可发现test.txt的内容为ownBranch的
(4)删除git worktree remove targetTree或者右键选择删除。
如果你觉得以上太麻烦了,直接在根文件夹输入:
git worktree add ../newTree targetBranch // newTree 工作树名 // targetBranch 目标分支