在工作中,我有一个项目,它有两个不同的版本,具有一些共同的基本功能。我利用git worktree
将这些版本放在单独的文件夹中,每个版本旁边有两个长期运行的分支master
,master
用于通用功能。因此,一个存储库有 3 个文件夹。此外,还有一个远程存储库,整个事情都被推送到那里。
$git branch -a
*master
version-1
version-2
remote/origin/master
remote/origin/version-1
remote/origin/version-2
在家用 PC 上,我有master
文件夹,并且此本地存储库链接到与我的工作存储库相同的远程。当我得到分支列表时,它就像:
$git branch -a
*master
remote/origin/master
remote/origin/version-1
remote/origin/version-2
我想checkout
到version-1
并将版本 a 的全部内容复制到本地文件夹,该文件夹由 git 作为worktree
跟踪,就像在我的工作中一样。git clone
或git checkout
这样做,还是我需要做一些更棘手的事情?
最后,我使用它来拥有与我的工作和家中相同的工作树。
$ git worktree add --checkout ../version-1 version-1
$ git worktree add --checkout ../version-2 version-2
它在不同的文件夹(工作树(中签出我长期运行的分支。