Git Nested Repositories - 存储文件而不是gitlink

时间:2017-05-20 01:13:28

标签: git heroku bitbucket

本地我有一个大项目的文件夹,其中包含许多子项目文件夹。

我有2个Git存储库:

Big Project Repo(bitbucket) - 包含所有子项目 - 在此repo中,我保存项目的所有源文件并排除所有已编译的文件。此repo用作源代码的备份。

Sub Project A Repo(heroku) - 嵌套在大项目的文件夹中,这是一个生产仓库,我只保存Sub Project A的编译文件并排除所有源文件。

Sub Project A Repo按预期推动,没有任何问题。

另一方面,大项目回购主要是按预期推动,除了由Gitlink引用的子项目A的文件夹,而不是保存实际文件。

我想在大项目仓库中存储子项目A文件夹的实际文件,在这种情况下将子项目A视为常规文件夹而不是仓库。

有些搜索提出了git子模块,但在阅读了一些关于它们之后,我得到的印象是文件仍然不会以我想要的方式存储,它只会考虑到嵌套repo的引用时克隆大回购。嵌套的repo文件仍然不会存储在大型仓库中。

如果我说得对,请告诉我以及如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

我确认子模块不会将subrepo文件存储在父仓库中 它将使用gitlink,并在.gitmodules中添加嵌套repo的远程URL。

如果您想将嵌套的repo包含在主要的repo中:

  • 首先,git rm nestedRepo(没有尾部斜杠):您需要删除gitlink
  • 其次,使用ingydotnet/git-subrepo:您将获得一个易于克隆的大型仓库,同时保留嵌套的仓库历史记录和个别更新。
    它比using subtrees更容易。