我开始在一家新使用 git 的公司工作。我需要一个好的推荐。首先,我想谈谈当前的工作流程。
团队的工作流程与常规的 git 基础有很大不同。树枝是
Local (feature/hotfix branch from Dev) -> Dev -> Test -> Prod
环境
Dev -> Test -> Prod
- 每个分支都有不同的配置文件(还没有解决方案。但我会先解决这个问题)因此,我们不能合并分支。
- 开发人员正在本地(功能/修补程序分支)上工作并将他们的推送合并到 Dev 分支并在 Dev 环境上发布他们的版本(只是补丁版本正在增加(1.0.xxx),我知道这不是一件好事。)
- 然后他们将他们的更改挑选到测试分支中。并且,他们在测试环境上发布了一个新版本。UAT 在这里很开心。
- 当开发人员想要将他们的更改发布到生产环境中时,他们也会挑选他们的更改。并在 prod 环境上发布新版本。
这里的第一个问题,我们不能很好地观察分支的历史,因为我们无法合并分支,因为配置文件。
第二个问题是一些更改应该在测试环境中保留 1-2 两周,更改的生命周期可以长也可以短。
第三个问题,我们不能使用像合并和拉取请求这样的 git 特性。我们想使用 PR 进行代码审查等。这对我们很重要。
我可以说在这个场景中部署过程和版本控制系统是混合的。因此,我们想使用 git-flow 之类的东西。虽然,我们希望保留这三个环境(开发、测试和产品),主要目标是合并分支并使用拉取请求
假设我们只有开发和主分支。开发人员在功能分支上工作。并将它们的功能合并到开发中。接下来,我们为测试环境创建了一个发布分支。但是我们应该为不同的生命周期变化集做什么?
我们应该如何将发布分支合并到主分支?我们应该如何处理 git 分支上的测试环境?
例如;
release 1.3.0
- 有一个功能应该在测试环境中停留 2 周,然后应该去生产环境
release 1.4.0
- 有人添加了一个应该在几天内用于生产环境的新功能。(虽然release 1.3.0
还活着。)
因此,测试环境将具有这两个功能,而 prod 应该在几天后具有最新的功能。但是该release 1.4.0
分支具有这两个功能。我应该将什么合并到生产分支中?
我们应该使用与 git-flow 不同的东西吗?你的建议是什么?