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

时间:2015-03-19 20:17:15

标签: git

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

  1. 频繁发布(每周发布列车)
  2. 能够随时进行热修复
  3. 频繁复杂/大型项目,产品频繁更换
  4. 我们尝试过使用Git-flow流程(http://nvie.com/posts/a-successful-git-branching-model/),但有两个主要问题:

    1. 我们在发布分支期间的任何时候测试的代码 与发布的内容完全相同(自发布以来) 分支需要在最后与主人合并)
    2. 重构更改很难处理,并且当发布分支与master合并时,通常会导致合并冲突。
    3. 是否还有其他git工作流程适合这种情况,或者其他人如何通过Git-flow克服这些问题?

2 个答案:

答案 0 :(得分:8)

  

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

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

  

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

请参阅上文,了解指向master分支的发布分支。此外,只要不在分支分割点之前重新提交任何提交,您就可以在开发时尝试重新设置功能分支。

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

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

但是,在将发布分支合并到master或发展为发布分支时出现合并问题表示未正确跟踪链接流。

答案 1 :(得分:3)

就替代品而言,

GitHub Flow

  

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

  • 主分支中的任何内容都是可部署的
  • 要处理新功能,请从主
  • 创建一个描述性命名的分支
  • 如果您需要反馈或帮助,或者您认为分支已准备好进行合并,请创建拉取请求
  • 其他人签署此功能后,您可以将其合并为主
  • 一旦合并并推送到掌握,您可以并且应该部署