嵌套GIT存储库的注意事项和可能的问题

时间:2017-01-15 21:53:44

标签: git

我正在考虑为我的项目设置以下git存储库:

  • 父文件夹 - 包含本地.git存储库文件夹,将被推送到
    • 子文件夹1: - 包含本地.git存储库文件夹,将推送到
    • 子文件夹2: - 包含一个本地.git存储库文件夹,将推送到

上面的设置为我带来了一些好处,我可以将父项目完全备份到一个单独的存储库中,而子文件夹(项目)可以存储在不太安全和共享的github存储库中。

以上设置有问题吗?是否支持?会不会引起问题?

1 个答案:

答案 0 :(得分:0)

  

以上设置有问题吗?是否支持?

问题是你的父代仓库只会记录每个嵌套式回购的gitlinks:

  • 它将记录根文件夹的名称和嵌套仓库的SHA1(即gitlink:name + SHA1),
  • 但不知道 那些嵌套的回购来自哪里。

如果您稍后再次克隆您的父级仓库,则每个子仓库只会获得空文件夹。

您应该将这些相同的嵌套回购添加为 submodule

结果是相同的(嵌套git repos),但您的父仓库中还有一个文件:.gitmodules。该文件将记录嵌套git repos的远程URL,并允许您稍后克隆您的父repo,并使用正确的内容找回正确克隆的嵌套git repos。