来自https://git-scm.com/docs/gitnamespaces:
Git支持将单个存储库的引用划分为多个名称空间,每个名称空间都有自己的分支,标签和HEAD。 Git可以将每个名称空间公开为一个独立的存储库,以便在共享对象存储的同时将所有引用都暴露给诸如git-gc之类的对象。
我想通过在单独的统一存储库下存储独立的不相关存储库来利用此功能。例如,我想为我的团队托管一个包含小型Python库的单一存储库,每个库都有其自己的设置分支/标记。我认为我可以使用git --namespace=library_n push --all unified_repo
之类的东西将各个存储库中的分支推送到统一存储库中。在大多数情况下,这似乎工作正常。我在这里缺少的是在新名称空间中没有分配的HEAD。因此,如果我随后运行类似git --namespace=library_n clone unified_repo.git local_library_n
的程序,则会得到:
警告:远程HEAD引用不存在的引用,无法检出。
虽然新克隆功能正常,但令人讨厌的是,克隆后没有立即检出默认HEAD的问题。我处理方法有误吗?是否有适当的方法克隆/推送到统一存储库,以便每个命名空间都包含正确的HEAD?
答案 0 :(得分:0)
我想为我的团队托管一个包含小型Python库的存储库,每个库都有自己的设置分支/标签
使用submodules会容易得多。
您的主存储库将使用
引用子存储库git submodule add /url/of/lib1
git submodule add /url/of/lib2
git submodule add /url/of/lib3