git子模块和子树之间的区别

使用git子模块和子树之间在概念上有什么区别?

每种情况的典型场景是什么?


冉冉说
浏览 1382回答 3
3回答

慕田峪7331174

概念上的区别是:使用git子模块,您通常希望将大型存储库分成较小的存储库。引用子模块的方式是maven样式 -您引用的是来自其他(子模块)存储库的单个提交。如果需要在子模块中进行更改,则必须在子模块中进行提交/推送,然后在主存储库中引用新的提交,然后提交/推送主存储库中已更改的引用。这样,您必须有权访问两个存储库才能完整构建。使用git子树,您可以将另一个存储库集成到其中,包括其历史记录。因此,在集成之后,您的存储库的大小可能会更大(因此,这不是保持存储库较小的策略)。集成之后,就没有与其他存储库的连接,除非您想要获取更新,否则您无需访问它。因此,此策略更多用于代码和历史记录重用-我个人不使用它。

人到中年有点甜

子模块将主存储库推送到远程不会推送子模块的文件子树将主存储库推送到远程,从而推送子树的文件
打开App,查看更多内容
随时随地看视频慕课网APP