在gitflow工作流中处理拉取请求的工作流(不经常发布)?

在gitflow工作流中处理拉取请求的工作流(不经常发布)?,git,github,pull-request,git-flow,Git,Github,Pull Request,Git Flow,我们以前的工作流程类似于gitflow,一切都是从master分支出来的,master总是反映生产。在准备发布时,功能分支合并到主功能中,修复不同功能之间可能存在的冲突,为发布创建标记,推送到主功能,就这样 因此,现在我们希望将拉请求集成到此工作流中,但让分支的开发人员继续负责修复冲突。当时的想法是仍然从master分支,然后向一个新分支(称为releaseX)执行一个pull请求,在这个分支中,将要进入下一个版本的所有新代码都将被删除 问题是,当新特性和其他特性在releaseX中发生冲突时,

我们以前的工作流程类似于gitflow,一切都是从master分支出来的,master总是反映生产。在准备发布时,功能分支合并到主功能中,修复不同功能之间可能存在的冲突,为发布创建标记,推送到主功能,就这样

因此,现在我们希望将拉请求集成到此工作流中,但让分支的开发人员继续负责修复冲突。当时的想法是仍然从master分支,然后向一个新分支(称为releaseX)执行一个pull请求,在这个分支中,将要进入下一个版本的所有新代码都将被删除

问题是,当新特性和其他特性在releaseX中发生冲突时,开发人员如何修复它们?在github中进行合并本身是不可接受的,将releaseX合并到功能分支中也是不可接受的(这将引入不相关的功能,并且最终会使功能更难不投入生产)

我们最终只为合并创建了一个分支,类似于resolution/releaseX\u my\u beautiful\u功能

(目前,遵循更多类似githubflow的模型(而不是gitflow),持续部署,没有真正的发布概念,并不是我们的最佳解决方案。)

当同时使用拉取请求和发布时,你们采用什么工作流?

正如@ckrusek所说的,有一个关于不同类型工作流的很好的文档。关于gitflow+pull请求工作流,他们建议:

  • 功能分支开发
  • 特性执行拉式请求以进行开发
  • 发布分支开发(分支命名约定:release-*或release/*)。发布分支仅用于准备发布,任何尚未开发的功能都将推迟到下一个发布周期
  • 将发布分支合并到master和developer中
  • 维护/热修复分支机构主分支机构
  • 维护/热修复分支合并到master和Development中
当然,仍然没有办法不将develope中不相关的特性混合到我们的特性分支中


基本上,pull-requests工作流意味着更频繁的发布,为了处理这些发布,我们需要有功能标志,以便在需要时关闭生产中未经测试的功能。这个模型带给我们的是一个工作流,它结合了发布的概念和管理发布的方法。

git flow for release fixes的基本思想实际上是一个单独的热修复分支,在其中修复某些bug并在修复它们后创建一个新的发布。所以对我来说,听起来你没有这样做,这就是为什么你有这些概念问题。如果我错了,请纠正我。我们有一个发布分支,这是新版本中的功能和热修复程序合并到的地方。问题是,当存在冲突时,我们使用拉请求,开发人员修复这些冲突的唯一方法是不将功能分支合并到发布分支,即绕过拉请求功能,不将发布分支合并到功能分支,用于开发人员从功能分支创建特定分支,合并到发布分支并修复冲突。同时,它们提供了一个有趣的描述,说明如何使用gitflow工作流维护拉请求工作流。请看一看,让我们知道,如果你觉得它有帮助或没有。