我们正在努力解决Git Flow流程问题,以及将功能部署到我们的测试和生产环境中:
- 我们希望所有准备好进行测试的功能被合并并部署到测试环境中。 - 我们只想将特定的功能部署到生产环境中。
我们使用Git Flow的方式存在问题:
1. 开发人员A按照正常的Git Flow流程从“develop”创建一个新的功能,并在新功能中进行开发。当准备好进行测试时,他将其功能合并到“develop”分支中,并将“develop”分支部署到测试环境中。 2. 然后开发人员B遵循相同的流程。两个功能现在都合并到了“develop”分支中,并且两个更改都可见于测试环境中。 3. 客户在测试环境上进行测试,但只批准由开发人员A进行的更改发布到生产环境。因此,他将从“develop”创建一个新的“release”分支。但是这会包括来自开发人员B的更改。
那么,如何最好地只发布来自开发人员A的更改呢?
当前,我们遵循以下过程,允许我们按功能发布到Live服务器。但肯定有更好的方法吧?
我们遵循正常的Git Flow设置,但还创建了一个名为“qa”的新分支,它将从主“branch”创建。我们遵循以下过程:
1. 拉取最新的“develop”分支 2. 使用Git Flow从“develop”创建一个新功能 3. 在功能中进行所有开发 4. 一旦准备好进行测试, - 拉取最新的“qa”分支 - 在“qa”分支中,将您的功能合并到“qa”中 5. 将“qa”分支发布到QA服务器 6. 如果需要进行任何错误修复,请从步骤3重复 7. 如果客户不再需要此功能,并且需要将其删除, - 删除该功能 - 撤消您对qa的合并 8. 如果客户满意测试,请选择您的功能,并按照Git Flow流程完成该功能。(这将合并到“develop”) 9. 选择Development分支,并使用GitFlow创建新版本 10. 使用Gitflow完成版本(如果需要,可以捆绑多个版本) 11. 准备上线时, - 确保您在master分支中 - 如有可能,请测试项目和更改 - 复制所有所需文件到Live服务器
但是通过创建此“QA”分支,我们根本没有使用预期的开发分支,使其变得多余。
- 我们希望所有准备好进行测试的功能被合并并部署到测试环境中。 - 我们只想将特定的功能部署到生产环境中。
我们使用Git Flow的方式存在问题:
1. 开发人员A按照正常的Git Flow流程从“develop”创建一个新的功能,并在新功能中进行开发。当准备好进行测试时,他将其功能合并到“develop”分支中,并将“develop”分支部署到测试环境中。 2. 然后开发人员B遵循相同的流程。两个功能现在都合并到了“develop”分支中,并且两个更改都可见于测试环境中。 3. 客户在测试环境上进行测试,但只批准由开发人员A进行的更改发布到生产环境。因此,他将从“develop”创建一个新的“release”分支。但是这会包括来自开发人员B的更改。
那么,如何最好地只发布来自开发人员A的更改呢?
当前,我们遵循以下过程,允许我们按功能发布到Live服务器。但肯定有更好的方法吧?
我们遵循正常的Git Flow设置,但还创建了一个名为“qa”的新分支,它将从主“branch”创建。我们遵循以下过程:
1. 拉取最新的“develop”分支 2. 使用Git Flow从“develop”创建一个新功能 3. 在功能中进行所有开发 4. 一旦准备好进行测试, - 拉取最新的“qa”分支 - 在“qa”分支中,将您的功能合并到“qa”中 5. 将“qa”分支发布到QA服务器 6. 如果需要进行任何错误修复,请从步骤3重复 7. 如果客户不再需要此功能,并且需要将其删除, - 删除该功能 - 撤消您对qa的合并 8. 如果客户满意测试,请选择您的功能,并按照Git Flow流程完成该功能。(这将合并到“develop”) 9. 选择Development分支,并使用GitFlow创建新版本 10. 使用Gitflow完成版本(如果需要,可以捆绑多个版本) 11. 准备上线时, - 确保您在master分支中 - 如有可能,请测试项目和更改 - 复制所有所需文件到Live服务器
但是通过创建此“QA”分支,我们根本没有使用预期的开发分支,使其变得多余。
git flow
周期,即develop > release > master
。release
甚至可以推送到一个_集成测试_主要QA URL,以进行所有已批准功能的最后一分钟测试。 - Hugo Ferreira