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