场景:在我们的MainProject中,我们有超过12个子项目。一些团队成员在所有SubProjects上工作,一些团队成员在2-3个子项目上工作,一些团队成员只在一个SubProject上工作。
Git Repo Strucure:我们已经创建了一个主存储库MainProject.git
。在它下面,我们为不同的项目添加了不同的子模块,比如SP1, SP2,...,SP12
。
问题:现在,当任何团队成员克隆MainProject时,将克隆所有SubProjects的空目录。 我们想要的是,只克隆用户需要的特定子模块,甚至不需要空文件夹。
怎么可能在git
?
答案 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
限制人们删除文件夹