用于管理频繁发布的git-flow的替代方案

d3m*_*ing 7 git

我想知道人们正在使用什么git分支/发布策略,并建议具有以下要求的项目:

  1. 频繁发布(每周发布列车)
  2. 能够随时进行热修复
  3. 相当复杂/大型项目,产品频繁更换

我们尝试过使用Git-flow流程(http://nvie.com/posts/a-successful-git-branching-model/),但有两个主要问题:

  1. 我们在发布分支期间的任何时候测试的代码与将要发布的代码不完全相同(因为发布分支需要在最后与master合并)
  2. 重构更改很难处理,并且当发布分支与master合并时通常会导致合并冲突.

是否还有其他git工作流程适合这种情况,或者其他人如何通过Git-flow克服这些问题?

Dan*_*try 8

我们在发布分支期间的任何时候测试的代码与将要发布的代码不完全相同(因为发布分支需要在最后与master合并)

这没有意义.发布分支和主分支之间的合并应该只是快进 - 您的主分支应该由您的发布决定,而不是相反.

重构更改很难处理,并且当发布分支与master合并时通常会导致合并冲突.

请参阅上面的发布分支,指示主分支.此外,只要不在分支分割点之前重新提交任何提交,您就可以尝试在开发时重新设置功能分支.

在将您的分支合并到开发之前,您应该在功能分支的顶部重新定义开发分支,这样当您将功能分支合并到develop中时,您将获得快速转发合并而不会发生合并冲突.您应该在开发期间定期执行此操作(可能每天一到一周,具体取决于存储库中的提交量).

如果你在功能完成之后进行重构并且你只是在重构develop分支,那么,是的,你应该期望合并很难.

但是,在将发布分支合并到主服务器或开发到发布分支时出现合并问题表示未正确跟踪链接流.


Ale*_*sco 5

就替代方案而言,

GitHub 流程

GitHub Flow 是一个轻量级、基于分支的工作流程,支持定期进行部署的团队和项目。

  • master/主分支中的任何内容都是可部署的
  • 要开发新功能,请从 master 分支创建一个描述性命名的分支
  • 当您需要反馈或帮助,或者您认为分支已准备好合并时,请创建拉取请求
  • 当其他人签署该功能后,您可以将其合并到 master 中
  • 一旦它被合并并推送到 master,您就可以而且应该部署