Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用GitFlow模型处理两个主要版本_Git_Github_Versioning_Git Flow - Fatal编程技术网

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

如何使用GitFlow模型处理两个主要版本,git,github,versioning,git-flow,Git,Github,Versioning,Git Flow,一段时间以来,我们一直在使用feature/release/hotfix分支的模型。现在,我们将要介绍一个主要功能,它的开发可能需要几周的时间,并且将导致一个主要版本的升级,我们希望保持这个主要功能的当前工作流(因此不使用每个人都直接提交的单个分支)以及当前版本 我想知道最好的方法是什么。是将整个回购协议分叉,然后合并回原来的回购协议吗?我们如何使这两个主要版本都处于积极开发状态,从而同时拥有1.x和2.x gitflow工作流 作为旁注,远程存储库托管在github上,因此将整个回购交给某个用

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

我想知道最好的方法是什么。是将整个回购协议分叉,然后合并回原来的回购协议吗?我们如何使这两个主要版本都处于积极开发状态,从而同时拥有1.x和2.x gitflow工作流


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

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

根据前面的评论,您可以选择从这里开始:

  • 正如您所建议的,github fork是一个很好的解决方案。git flow在这种情况下具有
    支持
    分支,但此时它们被标记为实验特性。
    github fork将允许您使用web钩子将更改从当前开发分支合并/导出到并行分支

  • 修改git流以添加问题中所需的二级流(“因此不使用每个人都直接提交的单个分支”),在提交这些更改时,您可以根据新的gitflow分支类型决定如何处理它,将其合并到何处

  • 您需要记住并意识到,如果要进行“主要版本升级”,您必须在升级过程中“修复”大量冲突


总而言之:
您可以选择使用git-flow,但您必须确保经常使用,以避免以后发生巨大冲突,方法是在冲突发生时立即修复冲突


您可以修改gitflow,并通过创建两个开发分支(一个用于日常开发,另一个用于新产品开发线)将其添加到您的需要中。提交给原始开发分支的所有更改也应提交给新开发分支,但不能反过来提交给新开发分支。

我为这种类型的问题寻找答案我也喜欢它,过了一会儿,我找到了一个令人愉快的方法

正如@CodeWizard提到的:

通过创建两个开发分支,一个用于日常开发,另一个用于新产品开发线。提交给原始开发分支的所有更改也应提交给新开发分支,但反之亦然

实现这一点的一种方法是让长期分支的行为类似于新的功能分支,例如
feature/next-major version
。 当您需要下一个主要版本的新功能时,只需创建一个新的功能分支。唯一的变化是它现在应该从
feature/next main version
分支出来,而不是像通常那样
development

要合并回子功能,只需将功能分支推送到GitHub,并创建一个从您的子功能到
feature/next main version
的拉取请求。如果它适合您的需要,其他人可以查看您的代码。但是,在GitHub拉取请求中,您可以从任何分支合并到任何其他分支


在我们的组织中,我们通过Atlassian的惊人SourceTree程序使用git flow。从那里可以像这样进行分支。挑战是,到今天为止,SourceTree似乎不支持将一个功能合并到另一个功能中,只支持将一个功能合并到
开发
。将GitHub pull请求添加到工作流程中解决了这个问题。

谢谢@jsexpert的回答。关于如何修改gitflow以实现您的建议的任何信息都是可能的?我猜所有内容都会重复开发\u v2、功能\u v2/*、发布\u v2/*等。正确吗?(您是否考虑了示例/链接?您好。如果您知道sh.git flow是sh文件的集合,这非常简单。克隆项目并检查脚本。配置在您的.git/config文件(所有git flow前缀)中,因此您只需复制所需脚本并根据需要更改目标分支即可。