我想将现有项目(托管在GitHub上)作为我项目的一部分(放入子目录),同时保持历史记录和更新该项目的能力。我发现可以有三种方法:
(1)变体可能是GitHub的首选变体,因为它们可能共享源。但从逻辑上讲,我的项目不是现有项目的分支。而现有的只是一个模块。此外,我不确定将现有代码移动到子目录中是否可能不会出现问题。 我可能更喜欢(2)变体,因为只有一个回购。 (3)需要与几个回购合作,但逻辑上最接近我的情况。
我对此进行了相当多的研究,但我并不确定。在这种情况下你会推荐什么?提前谢谢!
答案 0 :(得分:7)
如果两个项目(GitHub和你的项目)的开发生命周期不同,那么子模块方法会更好。
即:如果您在没有系统地更改其他GitHub项目的情况下更改项目,那么您应该考虑子模块方法。
但是,要实现这一点,您需要(1)和(3)的组合:
它允许您引用GitHub项目的一个特定修订版,同时允许您更新该子模块并对其进行特定推送(如“true nature of submodules”中所述)。
但是一旦你更新了子模块,不要忘记提交你的项目(这是子模块的“父项目”),以便注册你现在引用的子模块的新版本。