gitworktree 本地仓库的多个分支在对应的文件夹内管理,能够减少很多操作,便捷高效~

git worktree add ../Easinote-release -b release origin/release

git worktree add <新路径> -b <新分支名> <源分支名>

一 worktree 的基本概念和操作

​再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 - walterlv的专栏 - 博客​​​​再也不用克隆多个仓库啦!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​​ 清理。


作者: ​​J.晒太阳的猫​


本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

作者:​​唐宋元明清2188​


本文版权归作者有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。