我有一个项目,我想克隆到一个新的项目,将与原来的同时进化。Git-2项目共享功能
两个项目最终都会有不同的目标,但会共享未来的功能。
如果我保留一个具有2个分支的存储库,恐怕这可能导致太多差异。
如果我将项目拆分为2个存储库,我不确定在这之间合并功能是多么容易。
我在过去的2年里一直只使用git,我不确定是否已经掌握了它。
我该如何让2个项目发展并与git共享某些功能?
我有一个项目,我想克隆到一个新的项目,将与原来的同时进化。Git-2项目共享功能
两个项目最终都会有不同的目标,但会共享未来的功能。
如果我保留一个具有2个分支的存储库,恐怕这可能导致太多差异。
如果我将项目拆分为2个存储库,我不确定在这之间合并功能是多么容易。
我在过去的2年里一直只使用git,我不确定是否已经掌握了它。
我该如何让2个项目发展并与git共享某些功能?
这对Git来说确实很少。您将使用任何源代码管理工具(包括无)来面对这些相同的组织问题。这些问题依然存在,因为它们很难回答。我不太了解你的项目给你一个建议,但我会提供一些替代方案。这些选项不是相互排斥的。
master
分支。您可以从同一个来源构建项目A或项目B.任何共享源的功能都将从相同的文件中构建。任何时候你做出改变,你都必须确保这两个版本仍然有效,并且你对一个项目的改变没有打破另一个。因为您只使用一个项目,所以版本控制,发布和分支更容易。三个存储库 - 您有2个可交付成果和一些共享的代码。将这些通用代码分解成您也维护的独立库。那么你有一个依赖关系图如下所示:
+-----------+ +-----------+
| Project A | | Project B |
+-----------+ +-----------+
\ /
\ /
+----------------+
| Common Library |
+----------------+
两个项目A和项目B取决于公共图书馆。您可以通过多种方式管理这种依赖关系(依赖关系管理本身就是一个巨大的主题)。通用库可以有一个构建版本,可以在某处发布一个工件,以供以后的工程A和工程B的构建使用。或者,您可以在每个项目的子目录中使用库的源代码进行构建。 Git Submodules可以帮助这种方法。
如果您的公共库不合理稳定,请勿使用子模块 – mnagel
您是否考虑过子模块? [Pro-Git Book:6.6 Submodules](http://git-scm.com/book/en/Git-Tools-Submodules) – Chilledrat