使用git-flow时是否possible/desirable有'master'、'test'和'develop'分支?

Is it possible/desirable to have a 'master', 'test' and 'develop' branch when using git-flow?

我目前正在做一个项目,我们正在迁移到 Git。我们正在尝试找出要使用的工作流程。我们非常热衷于 git-flow,但有一个问题。

据我了解 git-flow,开发人员创建 feature 分支 develop,一旦他们完成了特定的 feature 分支,代码就会合并进入 develop。当我们要发布直播时,develop然后合并到master。在我们的例子中,develop 将是当前部署到我们的 Dev 环境的内容,而 master 将是当前 Live.这一切都很好。

事情

问题是在 Live 之前我们需要部署另一个环境,即。 测试。我们想要一个 test 分支,它将始终代表当前部署到 Test 的内容。

这是我们设想的工作方式:

  1. 开发人员在 feature 个分支中工作,这些分支合并到 develop,然后部署到 Dev.
  2. 当我们准备提升到Test时,develop被合并到test并被带到Test.
  3. 一旦在 Test 中签署了所有内容,我们将 test 合并到 master 并采用 Live .

我的问题

  1. 使用 git-flow 是否可行,如果可行,如何实现?
  2. 我们应该这样做吗?
  3. 还有什么办法可以做到这一点?

git-flow 具有 release 分支的概念,您可以将其用于该目的。

事实上,在git-flow中,develop并不是简单地合并到master中。您首先创建一个 release 分支,在其中准备实时版本、测试它并在最后一刻修复错误,然后再将其合并到 master,即发布它。

release 关闭时,它也会合并回 develop,因此您将在测试回主开发分支时完成所有修复。

Release branches support preparation of a new production release. They allow for last-minute dotting of i’s and crossing t’s. Furthermore, they allow for minor bug fixes and preparing meta-data for a release (version number, build dates, etc.).

A successful Git branching model » nvie.com