程序员经常重用代码。事实上,这是任何优秀代码库的核心原则之一——不要重复自己(DRY)。如果您想在多个其他存储库中使用共享项目怎么办?该 git subtree 命令可以帮助管理它。
代码重用问题
将项目嵌入到其他项目中会带来问题;项目 1 和项目 2 都连接到 Git,但直接为它们使用共享子项目并不是一个好的设计选择。这本质上是分叉子项目以在两个地方使用它,并且不可能维护子项目的正式版本。
这个问题有几个解决方案,每个都有自己的缺点。
首先,最明显的解决方案是将子项目制作成一个包,并将其分发到 NPM 或 NuGet 等包管理器上。这对于不经常更新或维护的东西非常有效,并且可以负担得起以谨慎的版本号分发给他们的消费者。但是,如果您定期更改此代码,则必须从第三方源集成、发布和拉取项目的新版本,这与直接访问代码一样不起作用。它还为当地的发展带来了复杂性。
另一种解决方案是使用 monorepo,一个用于所有代码的巨型存储库。这并不像您想象的那么疯狂,并且如果您的所有代码都在同一个域中,则效果很好;Google 为他们的所有代码使用一个 monorepo,而微软为他们维护的所有 .NET 程序集使用一个 monorepo。这样就解决了问题,因为如果你修改了子项目中的代码,每当你重新构建时,它都会被更新。在 Visu