Git流问题,融合掌握与发展
我目前正在将git flow与sourcetree一起使用。sprint的工作已经达成一致,我在develope之外创建分支,将代码提交到。我将功能分支合并到develop中,然后在sprint结束时合并到master中,代码进入生产 然而,如果一个补丁需要推送到master,或者如果其他工作被购买到sprint中,那么提交需要被排序并被挑选到master中,这可能会变得非常混乱 这可能会造成很多阻碍,因为在将其他工作提交到开发之前,需要将工作推给master、测试和签署Git流问题,融合掌握与发展,git,atlassian-sourcetree,git-flow,Git,Atlassian Sourcetree,Git Flow,我目前正在将git flow与sourcetree一起使用。sprint的工作已经达成一致,我在develope之外创建分支,将代码提交到。我将功能分支合并到develop中,然后在sprint结束时合并到master中,代码进入生产 然而,如果一个补丁需要推送到master,或者如果其他工作被购买到sprint中,那么提交需要被排序并被挑选到master中,这可能会变得非常混乱 这可能会造成很多阻碍,因为在将其他工作提交到开发之前,需要将工作推给master、测试和签署 有没有一种方法可以安全
有没有一种方法可以安全地引入新的工作并致力于开发?下面是git flow的图片: 如果您需要修复一些需要花费大量时间的问题,您可以从master转到developer(如果您有一项快速任务,如修复css、代码样式……,则可以启动一个大型修复)。 在您的情况下,您可以启动一个新功能,完成后,您可以使用以下方法进行合并开发:
- git合并
- 吉特重基
- 吉特樱桃采摘 或者使用git flow命令:
- git流特性完成
develop
合并到master
中,因为您正遇到以下问题:
这可能会造成很多阻碍,因为在将其他工作提交到开发之前,需要将工作推给master、测试和签署
Git Flow避免这些问题的方法是使用release
和hotfix
分支。(详情请参阅。)
您只需在发布之前创建一个release
分支进行测试,因此develope
的工作永远不会停止。(注意,您不必从develope
的提示创建release
分支;您可以使用任何希望分支的先前提交。)
当您需要在生产中执行修补程序时,您可以创建一个修补程序主程序的分支
在您的代码从release
或hotfix
分支合并到master
之后,您还可以将master
合并回develope
。(或者,您可以在将发行版
和修补程序
分支合并到开发
之前,将它们合并到主版
,但之后再将主版
合并会稍微更干净,更易于管理。)
旁注:发布版
和修补程序
分支通常定义良好,但是,由于您当前没有它们,因此您仍然可以在没有它们的情况下工作,但只需稍加调整。例如,假设您使用当前的开发并开始在某个地方测试构建,然后您喜欢它并希望将其发布到生产环境中。实际上,您有一个release
分支,但它没有命名。它只是您测试的提交ID。发布时,只需将提交ID从develope
合并到master
中,而不是在提交之前的develope
。这样,在开始测试之后,您就不会合并在develope
上发生的任何新代码。本质上,这与创建一个专用的发布
分支相同,但没有实际命名它。修补程序也是如此。通常,修补程序是单个提交中的一个小更改。我建议将master分支到某个分支中,但它不必被称为热修复程序;任何名字都行。然后,在完成后,将分支到master
并将master
合并回develope
,或者,如Git Flow所指出的,如果release
分支已经存在,则将master
合并回release
,而不是develope
(如果您希望尽快修复,也可以将release
合并回development
)
旁注:我听到的关于Git Flow最常见的抱怨是它太复杂了。我发现这种复杂性对某些组织来说是绝对必要的,当然对其他组织来说不是必要的。你可以选择你想使用的部分,并在必要时进行调整。如果你不需要release
分支但这很好-只需调整您的工作流,在发布时将提交ID从develop
合并到master
。但是如果您发现需要针对该提交ID进行错误修复,那么您可以动态创建一个release
分支。这是您不需要专门的relea就可以做到的se
大多数情况下都会分支。这可能会导致很多拦截器,因为在将其他工作提交到开发中之前,需要将工作推到master、测试和签署,我不相信这是真的。您可以将热修复程序合并到master中,同时仍将功能合并到develop中。在每个热修复程序合并到master中之后,您就可以uld还将master合并到develop中。