我使用svn:externals从另一个 SVN 存储库使用了两个 SVN 项目。
如何在 Git 中拥有相同的存储库布局结构?
Git 有两种与 svn:externals 类似但不完全等价的方法:
子树合并 将外部项目的代码插入到您的存储库中的单独子目录中。这有一个详细的设置过程,对于其他用户来说非常容易,因为它会在存储库被检出或克隆时自动包含在内。这是在项目中包含依赖项的便捷方式。 从另一个项目中提取更改很容易,但提交更改回来很复杂。如果另一个项目必须从您的代码中合并,则项目历史会合并,两个项目实际上会合二为一。
Git 子模块 (手动)链接到另一个项目存储库中的特定提交,就像 svn:externals 带有-r参数一样。子模块易于设置,但所有用户都必须管理子模块,这些子模块不会自动包含在结帐(或克隆)中。 尽管将更改提交回其他项目很容易,但如果 repo 发生更改,这样做可能会导致问题。因此,通常不适合将更改提交回正在积极开发的项目。
-r