我正在研究 git 的“新”worktree
功能,因为它似乎非常适合我通常面临的一个问题:需要同时在多个分支中工作(其中一些是短暂的,而另一些则非常长寿)。
我通常必须工作几个小时release_a branch
,然后修复一些东西,release_x branch
然后再修复一些release_h branch
。由于我很懒惰,我最终做的是使用 Intellij 设置我的 git 存储库的多个副本,所以我不需要经常在这里和那里切换分支。
当我听说 git 的worktree
命令时,我认为这正是我正在寻找的——一种让单个 repo 拥有多个工作目录的方法。作为一个很大的优势,这意味着我不再需要在每次更改分支上的某些内容时,仅仅为了让另一个人拉动它(例如,对于一个修补程序)。我可以在本地合并它们。
我对 git 的理解是否worktree
正确?
我一直在玩它,但我无法真正了解它是如何为我的目的工作的。似乎默认情况下它将在其根文件夹上创建工作树,但如果我这样做,git add .
那些相同的文件夹将包含在提交中。
这就是我为已经存在的分支创建工作树的方式my_branch
(假设我目前是 @ master
):
git worktree add my_branch my_branch
所以我的问题是双重的:
- 为长期分支应用多个工作树是否可能/正确,还是只是暂时有意义的事情?
- 然后我应该如何正确删除我不需要的工作树?
- 我应该在我的主 git 存储库内部还是外部存在这些工作树?
谢谢