Git Submodules vs repos里面的回购

时间:2014-12-19 07:42:40

标签: git git-submodules

我的网站有一个回购我会叫mysite。然后我有一个叫做myApp的小型django应用程序。我认为myApp很有用,所以我希望其他人能够下载它并将其作为子模块包含在他们的应用程序中。但是我想把回购保留在mysite里面。

目前我有一个针对mysite的git repo,里面我还有另一个针对myapp的git repo。我似乎能够cd进入各自的目录并推送/拉/编辑更改就好了。但是,我没有做任何事情来将其中一个设置为另一个的子模块。这是我需要做的事情吗?或者只有当我在mysite中使用某个elses模块并且不打算对模块进行更改时才会这样做?

1 个答案:

答案 0 :(得分:1)

如果您想将嵌套式仓库切换为子模块仓库,您只需要:

  • 将您的嵌套回购移到父回购
  • 之外
  • 型:

    git submodule add /remote/url/of/nested/repo
    

当您从嵌套仓库推送到原点时,使用/remote/url/of/nested/repo作为网址 完成:

git submodule update --init

然后添加刚刚gitlink entry的新created in the index,提交并推送(来自父仓库)

任何克隆mysite的人都可以执行git submodule update --init并找到你的嵌套repo作为子模块,在gitlink记录的最后一个版本中检出。

这意味着你的父级repo'mysite'不再包含所有嵌套的repo(这将占用一些空间),但只引用嵌套的repo通过gitlink(索引中的非常小的条目)。