先上总结:
在git worktree出现之前, git切换分支前后的文件都只存在在当前文件夹下,
git worktree出现之后, 我们可以将分支切换到其他文件夹下
比如如果你的项目有很多个版本分支, 在git worktree出现之前, 为了维护不同版本你就需要频繁切换版本, 如果项目还不小的话, 切换成本还是不小的
以我前端为例, 由于node_modules文件夹被忽略无法被跟着分支来回切换, 导致切换不同版本后还需要重新安装npm, 很麻烦
这时使用git worktree将分支检出到另外其他文件夹就可以避免这个问题.
将分支用git worktree检出到其他文件夹的好处很明显: 可以同时维护多个分支代码、可以对比不同分支的代码行为等等
下面是实例说明:
-
创建一个本地文件夹 test.
-
test文件夹内创建 main 文件夹并在 main 内
git init
. -
在 main 内创建一个 foo.txt 文件, 写点东西然后 add commit
-
$ git branch br1
- 在br1分支下修改 foo.txt 然后 add commit
-
$ git worktree add ../br1 br1 #将分支导出到某新文件夹下, 此处为br1文件夹
此时在test目录下就可以看到并存的master和br1分支下的文件, 分别对应main和br1文件夹