Git子模块还是不同的方法?

Git子模块还是不同的方法?,git,git-submodules,organization,Git,Git Submodules,Organization,我正在使用git存储库来管理用于教学的文件。现在,我有一个名为“教学”的存储库,里面有每个课程的文件夹(“课程1”、“课程2”、“课程3”等等)。我认为将每门课程分成一个子模块是一个好主意,这样(a)我可以与某人共享一门课程的材料,而他们看不到我所有课程的丑陋,(b)他们可以在我更新课程时看到(仅相关)更新,或通过拉取请求贡献他们自己的更改,(c)而承诺将更简单和明确(例如,我可以只说“更新教学大纲”,而不提及具体的课程) 我确实有一些所有课程都通用的材料,所以我认为一个总体的“教学”存储库是一

我正在使用git存储库来管理用于教学的文件。现在,我有一个名为“教学”的存储库,里面有每个课程的文件夹(“课程1”、“课程2”、“课程3”等等)。我认为将每门课程分成一个子模块是一个好主意,这样(a)我可以与某人共享一门课程的材料,而他们看不到我所有课程的丑陋,(b)他们可以在我更新课程时看到(仅相关)更新,或通过拉取请求贡献他们自己的更改,(c)而承诺将更简单和明确(例如,我可以只说“更新教学大纲”,而不提及具体的课程)

我确实有一些所有课程都通用的材料,所以我认为一个总体的“教学”存储库是一个好主意。我觉得子模块方法引入了一些(潜在的)不必要的复杂性,即我是唯一一个管理每门课程的人,我将在所有课程中频繁提交。此外,子模块让我感到困惑,我不完全理解它们。例如,在子模块中进行提交后,我是否需要在根存储库中进行提交/推送(例如,教学),以便在git拉入另一台机器时查看子模块的更改?此外,添加/删除子模块对我来说并不直观


这里有没有子模块的替代方案,或者我需要认真学习如何更好地使用子模块?

使用子模块而不仅仅是单独的repo的原因是什么?@evolutionxbox我在根文件夹/存储库“教学”中有一些通用文件,比如课程介绍材料,教学策略、模板文件、政府和行业人员服务学习机会的联系信息等。我喜欢将这些文件置于版本控制之下,并且我喜欢在该存储库中设置各个课程文件夹的结构。