我知道“如何嵌套git repos”有很多问题,而且大多数都推荐使用子模块。但是,我看到的所有代码片段都将子模块连接到一个单独的git url。在我的情况下,我唯一的git遥控器是在GitHub上,但我希望子模块在索引中不可见。不可否认,我的理由有点浅薄;我有超过150个回购,我想结合其中一堆,使列表更易于导航。但是我不想失去修订历史。
现在我只看到两个选项,两者都不合适:
答案 0 :(得分:1)
没有
“GitHub repo”正好是一个Git回购。虽然有 方法可以使用Git(通过子模块或将repos合并为一个)来实现这一目的,但是你已经将它们作为不可行的消除了。
答案 1 :(得分:1)
将所有提交历史记录合并到一个树
中
这就是monorepo方法,你看到大型组织(Facebook,谷歌,微软)越来越多地使用
Microsoft已one giant Git repo for Windows,但这是因为它使用了GVFS (Git Virtual FileSystem)
在您的情况下,您可以尝试merge your repo (with git subtree for instance)(或as another option, some merge --squash
)
答案 2 :(得分:1)
您可以使用子树将整个存储库视为一个。
我认为解决方案可能是subtrees。使用子树,您可以在中央存储库中开发存储在其他存储库中的元素。
这意味着您可以拥有
您可以将组件A和B放在separate存储库中。有自己的自述文件等。那些不是独立的库:只是项目的一部分(子树)。
要更新组件X,您只需克隆组件并进行更新即可。但是等等,......这有点令人困惑,所以,...你可以在主git存储库中拉下子树并将子树推入其遥控器。