Git流问题,融合掌握与发展

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与sourcetree一起使用。sprint的工作已经达成一致,我在develope之外创建分支,将代码提交到。我将功能分支合并到develop中,然后在sprint结束时合并到master中,代码进入生产

然而,如果一个补丁需要推送到master,或者如果其他工作被购买到sprint中,那么提交需要被排序并被挑选到master中,这可能会变得非常混乱

这可能会造成很多阻碍,因为在将其他工作提交到开发之前,需要将工作推给master、测试和签署


有没有一种方法可以安全地引入新的工作并致力于开发?

下面是git flow的图片:

如果您需要修复一些需要花费大量时间的问题,您可以从master转到developer(如果您有一项快速任务,如修复css、代码样式……,则可以启动一个大型修复)。 在您的情况下,您可以启动一个新功能,完成后,您可以使用以下方法进行合并开发:

  • git合并
  • 吉特重基
  • 吉特樱桃采摘 或者使用git flow命令:
  • git流特性完成
我希望这能帮助你改进你的工作

我将功能分支合并到develop中,然后在sprint结束时合并到master中,代码进入生产

如果愿意,您当然可以这样做,但通常在Git Flow中,您不会直接将
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中。