我克隆了一个包含多个分支的大git存储库(大约3.7g)。其中一个分支负责设置Windows Installer(InnoSetup),因此,在构建主程序之后,我需要切换到Installer分支。
是否有可能拥有一个存储库,但在两个不同的目录中有两个单独的HEAD,所以不必克隆存储库两次?
答案 0 :(得分:5)
如果您的Git是2.5或更高版本, 1 ,您有一个新命令git worktree
。这有一个add
子命令,它将在另一个目录中创建一个新的工作树。每个此类工作树都有自己的HEAD
和索引(以及各种状态文件,例如正在使用的git am
,git rebase
等等 - 基本上所有报告的内容由git status
)。有关详细信息,请参阅the documentation。请注意,即使在当前版本的Git(2.8.x)中,git worktree
仍然有点实验性。但它应该适用于这个特定的用例。
另见What would I use git-worktree for?
1 我建议至少2.6,它修复了一些错误。看到每一个提及" worktree"在the 2.6.0 release notes。