使用Git管理Web应用程序的多个版本


12

我们拥有一系列应用程序,所有应用程序都具有相同的基础。到目前为止,我一直在开发此基础,Git工作流程非常简单:

  • 开发在develop分公司完成
  • name-of-the-feature分公司开发了新功能
  • 发布在release-**分支中

到目前为止,该系列的每个应用程序的代码都是相同的。假设他们共享的基础已经完成,从现在开始,每个应用程序的代码都会有所不同。

我不确定应该如何处理git以及具有相同基础的多个应用程序

  • 他们每个人都应该有自己的git项目吗?
  • 他们应该在同一个项目中,但每个人都在自己的分支中吗?

关键是:如果我将它们放在单独的项目中,则在应用程序的基础上进行的每个修改都必须在每个应用程序中重复进行。我对git不太熟悉,但是如果我将每个项目存储在一个分支中,是否可以将基础修改与每个应用程序合并?

有没有人遇到过这样的情况?我不确定如何进行。

谢谢!

编辑 当我说版本时,我并不是说像版本号。它们实际上是具有相同基础的不同应用程序。

Answers:


7

将基本应用程序保留在其自己的存储库中,并创建依赖于从该存储库编译的jar的新项目。

Git分支不适用于多个应用程序。Git希望您为每个项目或相关系列的项目使用一个存储库。分支在那里,您可以孤立地开发功能,而不能在不离开存储库的情况下创建全新的项目。

您不希望有多个共享代码的应用程序-这是维护的噩梦。如果按照您的建议,您将每个开发都开发为中央仓库中的一个分支,那么您将进行大量合并以将更改传播到每个应用程序。依靠一个单独的库并使用诸如Apache Maven之类的方法来获取项目依赖关系要容易得多。


共享的许多代码都是GWT代码(视图,服务等)。是否可以将其提取到jar库中?还是只有服务器端Java代码?
若奥·丹尼尔·

可以提取视图元素,但可能无法提取到jar中。例如,可以将JavaScript从每个页面提取到一个文件中,然后将其包含在每个项目中。JSP通用代码应提取到JSP标记中。您可能不需要拉整页,但是我不知道您的项目,所以我可能是错的。
Michael K

您如何看待这种方法:stackoverflow.com/a/2540471/2615737?它似乎是合理的……
Francisco Corrales Morales 2015年

我认为这不是同一用例。这个答案涉及同一个应用程序的两个版本,它们有一些细微的差异,而这个问题是关于我认为完全不同的应用程序。即使在“稍有不同”的情况下,我仍然不希望完全没有分支。但是,如果涉及到任何视图xml,则很难排除功能来分离Android中的库。看起来那个回答者认为他的情况不值得为此烦恼。
Michael K

6

如果应用程序不会修改基础本身,请考虑将基础保留在其自己的存储库中。然后为每个单独的应用程序创建一个新的存储库,并将基础添加为git子模块

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.