先上总结:

在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文件夹

git worktree 是什么及其使用场景的更多相关文章

  1. git worktree

    git clone,不管是single-branch,还是non-single-branch,如果同时存在几个clone出来的branches,随着时间的推移,不停的编译.更新.编译...每个bran ...

  2. 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录

    我在 feature 分支开发得多些,但总时不时被高优先级的 BUG 打断需要临时去 develop 分一个分支出来解 BUG.git 2.6 以上开始提供了 worktree 功能,可以解决这样的问 ...

  3. Git worktree 使用笔记【转】

    gitworktree 本地仓库的多个分支在对应的文件夹内管理,能够减少很多操作,便捷高效~ 一 worktree 的基本概念和操作 再也不用克隆多个仓库啦!git worktree 一个 git 仓 ...

  4. git worktree 使用笔记

    一 worktree 的基本概念和操作 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 - walterlv的专栏 - CSDN博客 再也不用克隆多个仓库啦! ...

  5. git worktree 目录修复

    三种方式挨个尝试,1不行用2 2不行用3 1.拉取阶段失败 git worktree add -f -B xxx_branch ./xxx_branch origin/xxx_branch 强制拉取 ...

  6. git worktree 稀疏检出(sparseCheckout)

    稀疏检出配置: git config core.sparsecheckout true echo another_folder/xxxx/ >> .git/info/sparse-chec ...

  7. 接上篇:Git Worktree 高级使用,这样清爽多了

    前言 上一篇文章 Git Worktree 大法真香 带大家了解了 git worktree 是如何帮助我同时在多个分支工作,并且互不影响的.但是创建 worktree 的目录位置不是在当前项目下,总 ...

  8. GIT的基本使用及应用场景

    一.什么是GIT? Git 是一个开源的分布式版本控制软件,用以有效.高速的处理从很小到非常大的项目版本管理. GitHub.GitCafe.BitBucket和GitLab等是基于Git版本控制的远 ...

  9. git rebase 还是 merge的使用场景最通俗的解释

    什么是 rebase? git rebase 你其实可以把它理解成是“重新设置基线”,将你的当前分支重新设置开始点.这个时候才能知道你当前分支于你需要比较的分支之间的差异. 原理很简单:rebase需 ...

随机推荐

  1. <操作系统>内存管理

    单道程序设计:内存被划分为两部分:一部分供操作系统使用,另一部分供当前正在执行的程序使用. 多道程序设计:内存中进一步细分用户部分,以满足多个进程的要求. 内存管理的需求: 重定位:程序从磁盘换入内存 ...

  2. webpack4对第三方库css,项目全局css和vue内联css文件提取到单独的文件(二十二)

    在讲解提取css之前,我们先看下项目的架构如下结构: ### 目录结构如下: demo1 # 工程名 | |--- dist # 打包后生成的目录文件 | |--- node_modules # 所有 ...

  3. postfix 邮件服务的安装及详解

    该实验系统:cetnos 6.5 sendmail:性能好,设置复杂,适合老手 qmail:体积小260+k ,模块化.需要做二次开发,适合对邮件性能有要求的 postfix:前身是sendmail, ...

  4. java 二维数组和对象数组

    1.二维数组:二维数组就是存储一维数组(内存地址/引用)的数组 2.二维数组的初始化 1) int intA[][]={{1,2},{2,3},{3,4,5}}; 2) int [][] intB=n ...

  5. Omi框架学习之旅 - 组件 及原理说明

    hello world demo看完后其实基本的写法就会了. 但是omi中的组件是神马鬼?其实我也不知道组件是啥. 百度百科是这么说的: 是对数据和方法的简单封装.es6中,一个类其实也可以做到对方法 ...

  6. React-用create-react-app搭建项目

    安装create-react-app npm install -g create-react-app 装完之后,生成一个新的项目,可以使用下面的命令: create-react-app my-app ...

  7. odoo11 外部数据导入方法2

    前面有一篇文章分析了如何使用2个分开的文件分别将外部数据导入到odoo对应的系统当中,如之前所说,是存在缺点的,现在测试将所有数据放入一个文件中将主表与从表的数据一次性导入,这样可以很方便的利用odo ...

  8. cp 命令有坑

    cp 是个很常用的命令, 基本语法为  cp -v  a   b  把文件a 复制为文件b(-v为显示做了什么,这是非常安全的做法,建议新手添加此参数) 参数说明: -a:此选项通常在复制目录时使用, ...

  9. Webpack 2 视频教程 003 - Webpack 项目初始化

    原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲 ...

  10. libmysqlclient.so.16: cannot open shared object file: No such file or directory

    编译安装的mysql5.6.39,安装目录是/usr/local/mysql,启用程序时报错:libmysqlclient.so.16: cannot open shared object file: ...