6

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

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

git flow 工具并没有提出很多主/生产分支,而是一个单一的。 我能做些什么?

4

3 回答 3

0

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

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

如果你不能让你的应用程序在运行时动态定制,我会实现一个在部署时进行覆盖的构建过程。

于 2011-02-20T04:01:42.530 回答
0

我的解决方案如下:

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

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

  • 读取当前签出分支的名称(我要部署到的分支);
  • 读取最后部署的版本并根据输入参数(bug、fature、major..)递增它;
  • 使用 {new version}-{environment} 创建一个标签,
  • 更新 pom.xml 中的当前版本;
  • 推送所有(也是标签)。

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

  • 拉取对应的分支;
  • 找出描述该分支的标签(git describe --tags);
  • 签出该标签;
  • 停止,编译,复制,开始。
于 2020-11-09T16:19:19.403 回答
0

解决方案1)在子项目中开发maven工件并将它们上传到自定义nexus。然后您的每个项目都可以导入这些工件

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

ps:如果你使用git-flow scripts-bundle,那么你必须忘记那些并自己做(不是那么难)

于 2019-11-28T14:30:26.867 回答