您可以将各种存储库组合到一个存储库中,但不能与子模块一起使用。虽然我可以建议剂量的方法有一个严重的缺点。合并您的玩具项目后,它们不再充当单独的项目。你不能只对一个项目作出承诺,你必须同时对所有项目作出承诺。同样,您不能只分支一个项目,每个分支都是所有项目的一个分支。因此,如果您使用了多个分支,或者将来有可能希望对单个项目进行分支,那么请坚持使用单独的存储库。
如果毕竟你仍然想合并你的各种存储库,那么你可以使用如何使用子树合并策略的部分想法。虽然由于您不打算保留旧存储库,但您永远不需要使用子树合并。
子树合并策略文档中的重要部分是以下命令,您应该从新的容器存储库中运行这些命令:
$ git remote add -f Bproject /path/to/B
$ git merge -s ours --no-commit Bproject/master
$ git read-tree --prefix=dir-B/ -u Bproject/master
$ git commit -m "Merge B project as our subdirectory"
由于您要删除原始存储库,因此您还可以删除您在开始时添加的远程,这样它就不会混乱。
$ git remote rm Bproject
此时,您的容器存储库包含 Bproject。您可以重复这些步骤以合并其他项目。但是,正如我之前提到的,只有 master 分支被合并,您的项目可能拥有的任何其他分支都不会被合并。