我正在使用git存储库来管理我用于教学的文件。现在,我有一个名为“教学”的存储库,其中包含每个课程的文件夹(“ course-1”,“ course-2”,“ course-3”等)。我认为将每门课程都分成一个子模块是一个好主意,这样(a)我可以与某人共享一门课程的资料,而他们却无法看到我所有课程的丑陋;(b)他们可以看到( (仅相关)更新,当我进行更新或通过拉取请求贡献自己的更改时,(c)和提交将更加简单和明确(例如,我可以只说“更新课程提要”,而不必参考特定课程)。
我确实有所有课程共有的一些资料,所以我认为总体的“教学”资源库是一个好主意。我感觉子模块方法引入了一些(可能)不必要的复杂性,即我是唯一管理每门课程的人,并且我将在所有课程中进行频繁提交。另外,子模块让我感到困惑,我还不太了解它们。例如,在子模块中进行提交后,是否需要在根存储库中进行提交/推送(例如,教学),以便在git pull另一台计算机上时看到子模块的更改?另外,添加/删除子模块对我来说也不直观。
是否有可以在这里使用的子模块替代品,还是我需要精打细算并学习如何很好地使用子模块?