我有一个项目,我想克隆到一个新项目中,该项目将与原始项目同时发展。
这两个项目最终将有不同的目标,但将共享未来的功能。
如果我保留一个包含 2 个分支的存储库,恐怕这会导致太多差异。
如果我将项目拆分为 2 个存储库,我不确定在此之间合并功能会有多容易。
我最近两年才使用 git,我不确定是否掌握了它。
如何使 2 个项目发展并与 git 共享一些功能?
我有一个项目,我想克隆到一个新项目中,该项目将与原始项目同时发展。
这两个项目最终将有不同的目标,但将共享未来的功能。
如果我保留一个包含 2 个分支的存储库,恐怕这会导致太多差异。
如果我将项目拆分为 2 个存储库,我不确定在此之间合并功能会有多容易。
我最近两年才使用 git,我不确定是否掌握了它。
如何使 2 个项目发展并与 git 共享一些功能?
这与 Git 关系不大。使用任何源代码控制工具(包括没有),您都会面临同样的组织问题。这些问题之所以存在,是因为它们很难回答。我对您的项目了解不多,无法给您推荐,但我会提供一些替代方案。这些选项不是相互排斥的。
master
包含 2 个构建的分支。您可以从同一源构建项目 A 或项目 B。任何共享源的功能实际上都将从相同的文件构建。每次进行更改时,都必须确保两个构建仍然有效,并且您对一个项目的更改不会破坏另一个项目。因为您只使用一个项目,所以版本控制、发布和分支更容易。三个存储库- 您有 2 个可交付成果和它们共享的一些通用代码。将该通用代码分解为您也维护的单独库。然后你有一个像这样的依赖图:
+-----------+ +-----------+
| Project A | | Project B |
+-----------+ +-----------+
\ /
\ /
+----------------+
| Common Library |
+----------------+
项目 A 和项目 B 都依赖于公共库。您可以通过多种方式管理这种依赖关系(依赖关系管理本身就是一个巨大的话题)。公共库可以有一个构建,它在某个地方发布一个工件,以后可以由项目 A 和项目 B 的构建使用。或者,您可以在每个项目的子目录中使用库的源代码进行构建。Git 子模块可以帮助这种方法。