Git子模块:仅在回购的一个子模块上工作

时间:2015-07-29 11:17:06

标签: git git-submodules

场景:在我们的MainProject中,我们有超过12个子项目。一些团队成员在所有SubProjects上工作,一些团队成员在2-3个子项目上工作,一些团队成员只在一个SubProject上工作。
Git Repo Strucure:我们已经创建了一个主存储库MainProject.git。在它下面,我们为不同的项目添加了不同的子模块,比如SP1, SP2,...,SP12

问题:现在,当任何团队成员克隆MainProject时,将克隆所有SubProjects的空目录。 我们想要的是,只克隆用户需要的特定子模块,甚至不需要空文件夹。
怎么可能在git

1 个答案:

答案 0 :(得分:1)

  

仅克隆特定子模块

这是可能的。克隆后,尝试:

JFrame
  

甚至不想要一个空文件夹

我不认为这是可能的,因为子模块文件夹是superProject repo的一部分。

尝试git submodule init git submodule update <path to specific submodule> 来验证这一点。 由于我们只能克隆整个存储库,因此将创建空文件夹。

  

如果有人删除了空文件夹

有两种选择:

  • 您可以在git ls-files中添加所有子模块文件夹,但这是不可取的(请参阅Do you ignore a git submodule in your .gitignore or commit it to your repo?)。然后,处理特定子模块的开发人员必须在处理之前删除该行。 (然后开发人员必须小心不要推送已编辑的.gitignore,因此这并不能解决开发人员不小心工作的原始问题。
  • 或者,您可以使用.gitignore pre-commit限制人们删除文件夹