用于多个临时/生产环境的git-flow

时间:2011-02-19 23:22:32

标签: git git-workflow git-flow

我正在尝试将git-flow应用于具有多个共享相同代码库的网站的项目。

我目前使用许多功能分支,一个开发分支,一个支持分支和许多生产分支:每个站点一个,因为每个站点都会自定义一些配置文件。

git flow工具不提供许多主/生产分支,而是单个分支。 我该怎么办?

3 个答案:

答案 0 :(得分:0)

坦率地说,这听起来像应用程序配置问题 - 而不是git问题。

我们在系统中找到了原生支持“覆盖”文件的方法 - 系统首先查找自定义文件并退回默认文件。

如果您无法在运行时动态自定义应用程序,我将实现一个在部署时执行覆盖的构建过程。

答案 1 :(得分:0)

解决方案1)在子项目中开发Maven工件并将其上载到自定义关系。那么您的每个项目都可以导入这些工件

解决方案2)使git-flow适应您自己的需求。例如,在我们的案例中,我们有多个发布分支,而没有develop分支。每个分支都是从母版创建的。这样,我们就非常灵活,只需将所有功能分支合并到一个发行版中,就可以即时创建短期和长期发行版。这样,您还可以为每个环境创建特殊版本

ps:如果您使用git-flow scripts-bundle,则必须忘记这些并自己完成(不是那么困难)

答案 2 :(得分:0)

我的解决方法是:

  • 每个环境都有自己的分支;
  • 我有一个文件(对我来说是pom.xml。但这并不重要),其中包含该特定分支的最新部署版本。

当我需要部署时,我在PC上运行一个脚本:

  • 读取当前已签出分支的名称(我要部署到的分支);
  • 读取最后部署的版本,并根据输入参数(bug,fature,major ..)对其进行递增;
  • 使用{新版本}-{环境}创建标签,
  • 更新pom.xml中的当前版本;
  • 按下所有(还有标签)。

在服务器上,我运行一个脚本,该脚本:

  • 拉相应的分支;
  • 找到描述该分支的标签(git describe --tags);
  • 签出该标签;
  • 停止,编译,复制,开始。