我已经克隆了一个包含多个分支的大型 git 存储库(大约 3.7g)。其中一个分支负责设置Windows Installer(InnoSetup),因此,在我构建主程序后,我需要切换到Installer 分支。
是否有可能只有一个存储库,但在两个不同的目录中有两个单独的 HEAD,因此不必两次克隆存储库?
最佳答案
如果你的 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,它修复了一些错误。查看 the 2.6.0 release notes 中每一次提及“worktree” .
关于git - 是否可以在一个 git 存储库中有多个 HEAD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37853560/