git - 如何使用 GitFlow 模型处理两个主要版本

标签 git github versioning git-flow

我们一直在使用 GitFlow使用 feature/release/hotfix 分支的模型已经有一段时间了。现在我们将要介绍一项可能需要数周时间开发的主要功能,并将导致主要版本升级,我们希望保留我们当前的主要功能工作流程(因此不使用每个人都直接提交的单个分支)作为以及当前版本。

我想知道最好的方法是什么。会不会是fork整个repo然后 merge 回原来的?我们怎样才能让两个主要版本都处于活跃的开发状态,从而同时拥有 1.x 和 2.x gitflow 工作流?

作为旁注,远程存储库托管在 github 上,因此将整个存储库 fork 到某个用户而不是某个组下,似乎有点违反直觉。

最佳答案

一般性的评论只是为了让不熟悉 git 流程的用户澄清, git flow是开源的,因此您可以修改流程并根据需要对其进行自定义

根据之前的评论,您有多种选择可以从这里开始:

  • 正如您所建议的,github fork 是一个很好的解决方案。 git flow 为这种情况提供了 support 分支,但目前它们被标记为实验性功能。
    github fork 将允许您使用 web-hooks 将当前开发分支的更改 merge/导出到您的并行分支。

  • 修改 git 流程以根据您在问题中的要求添加辅助流程(“因此不使用每个人都直接提交的单个分支”),并且在提交这些更改时,您可以决定如何处理它,在哪里根据您的新 gitflow 分支类型将其 merge 。

  • 您需要牢记并意识到,如果您要进行“主要版本升级,您将不得不在途中“修复”很多冲突。


总结:
你可以选择使用 git flow,但是你必须确保你经常 pull ,以避免以后发生巨大的冲突,当它们发生时立即修复它们
或者
您可以修改 gitflow 并通过创建 2 个开发分支(一个用于日常开发,第二个用于您的新产品开发线)来根据您的需要对其进行自定义。所有提交到原始开发分支的更改也应该提交到新的开发分支,但反之则不然。

关于git - 如何使用 GitFlow 模型处理两个主要版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29751027/

相关文章:

git - 如何检测 TeamCity 中当前代码更改的标签?

git - 使用 Jenkins 从 Ansible 中的 Bitbucket 获取时公钥被拒绝

PhpStorm 禁用监视供应商 git 存储库

git - 在 Github 上处理废弃的 pull 请求(保留历史记录)

git - 如何处理审查 pull 请求、修改代码和 merge ?

eclipse - 将 GitHub 项目导入 Eclipse

node.js - 将 GitHub 项目的分支发布到新的 NPM 模块,但保留与原始模块 merge 的选项?

osgi - OSGi 包中的版本更改

.net - 修改真的是随机的吗

build-automation - 在 Gradle 中递归发布是否可能/容易?