根据文档,每个都git worktree
提供一个branch
(dev
/ feature
/prod
等等),但对我来说听起来也不合理,每个分支都有自己的worktree
,因为它会创建许多文件夹,并且在某些时候可能会令人困惑。
一个git worktree
可以支持多个branches
吗?例如所有属于的分支,feature
然后在当前相关的内容之间切换?这是正确的方法吗?
根据文档,每个都git worktree
提供一个branch
(dev
/ feature
/prod
等等),但对我来说听起来也不合理,每个分支都有自己的worktree
,因为它会创建许多文件夹,并且在某些时候可能会令人困惑。
一个git worktree
可以支持多个branches
吗?例如所有属于的分支,feature
然后在当前相关的内容之间切换?这是正确的方法吗?
git worktree
创建一个共享现有本地存储库的新结帐。它有自己的 HEAD,用于跟踪当前签出的提交,以及用于构建提交的自己的暂存区。它的主要目的是能够同时在多个分支上工作,而无需克隆整个存储库或隐藏您的更改。
工作树的工作原理与任何其他结帐基本相同。您可以切换到您喜欢的任何分支,除非它已经被另一个工作树签出。你可以运行 git-bisect。你可以变基。
工作树不必用于新分支,它可以用于现有分支。git worktree add ../temp master
将制作一个主检出的工作树。
如果您打算同时在多个分支上工作,您只需要制作工作树。例如,您正在开发一个功能并且有许多未提交的更改并且紧急修复出现了。您可以为该修复创建一个工作树,在工作树中进行修复,然后返回您原来的功能工作。或者,也许您想针对旧版本进行测试,您可以制作工作树并检查旧版本。
一个好的开发过程不需要你同时在多个分支上工作。
来自https://git-scm.com/docs/git-worktree
一个 git 存储库可以支持多个工作树,允许您一次检出多个分支。使用 git worktree 添加一个新的工作树与存储库相关联。这个新的工作树被称为“链接工作树”,而不是 git-init 或 git-clone 准备的“主工作树”。
如果要向工作树添加新分支,则需要编写:
git worktree add <path> <branch_name>
例如:
git checkout -B new_branch
git checkout main
git worktree add ./new_branch new_branch
要删除它:
git worktree remove
它看起来如何: 在树视图中
在路径参数中,您可以传递任何内容。因此,您可以根据需要管理分支,例如,您可以创建文件夹,在其中仅存储带有错误修复或期货的分支。