0

根据文档,每个都git worktree提供一个branchdev/ feature/prod等等),但对我来说听起来也不合理,每个分支都有自己的worktree,因为它会创建许多文件夹,并且在某些时候可能会令人困惑。

一个git worktree可以支持多个branches吗?例如所有属于的分支,feature然后在当前相关的内容之间切换?这是正确的方法吗?

4

2 回答 2

2

git worktree创建一个共享现有本地存储库的新结帐。它有自己的 HEAD,用于跟踪当前签出的提交,以及用于构建提交的自己的暂存区。它的主要目的是能够同时在多个分支上工作,而无需克隆整个存储库或隐藏您的更改。

工作树的工作原理与任何其他结帐基本相同。您可以切换到您喜欢的任何分支,除非它已经被另一个工作树签出。你可以运行 git-bisect。你可以变基。

工作树不必用于新分支,它可以用于现有分支。git worktree add ../temp master将制作一个主检出的工作树。

如果您打算同时在多个分支上工作,您只需要制作工作树。例如,您正在开发一个功能并且有许多未提交的更改并且紧急修复出现了。您可以为该修复创建一个工作树,在工作树中进行修复,然后返回您原来的功能工作。或者,也许您想针对旧版本进行测试,您可以制作工作树并检查旧版本。

一个好的开发过程不需要你同时在多个分支上工作。

于 2021-09-09T23:35:13.170 回答
1

来自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

它看起来如何: 在树视图中

在路径参数中,您可以传递任何内容。因此,您可以根据需要管理分支,例如,您可以创建文件夹,在其中仅存储带有错误修复或期货的分支。

于 2021-09-09T23:28:01.053 回答