git worktree 是什么及其使用场景

先上总结:前端

在git worktree出现以前, git切换分支先后的文件都只存在在当前文件夹下, node

git worktree出现以后, 咱们能够将分支切换到其余文件夹下git

好比若是你的项目有不少个版本分支, 在git worktree出现以前, 为了维护不一样版本你就须要频繁切换版本, 若是项目还不小的话, 切换成本仍是不小的npm

以我前端为例, 因为node_modules文件夹被忽略没法被跟着分支来回切换, 致使切换不一样版本后还须要从新安装npm, 很麻烦spa

这时使用git worktree将分支检出到另外其余文件夹就能够避免这个问题.code

将分支用git worktree检出到其余文件夹的好处很明显: 能够同时维护多个分支代码、能够对比不一样分支的代码行为等等it

下面是实例说明:ast

  • 建立一个本地文件夹 test.class

  • test文件夹内建立 main 文件夹并在 main 内 git init.test

  • 在 main 内建立一个 foo.txt 文件, 写点东西而后 add commit

  • $ git branch br1

  • 在br1分支下修改 foo.txt 而后 add commit
  • $ git worktree add ../br1 br1  #将分支导出到某新文件夹下, 此处为br1文件夹

此时在test目录下就能够看到并存的master和br1分支下的文件, 分别对应main和br1文件夹