Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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
Git 当两个功能分支都更新了代码段时,如何使功能分支与主分支一起更新_Git_Merge_Fork - Fatal编程技术网

Git 当两个功能分支都更新了代码段时,如何使功能分支与主分支一起更新

Git 当两个功能分支都更新了代码段时,如何使功能分支与主分支一起更新,git,merge,fork,Git,Merge,Fork,我有一个主分支和一个功能分支。功能分支会以每天更新的代码合并到主分支中。但是,经常发生的情况是,更改直接合并到主分支中,而不首先经过要素分支 这意味着主分支也需要合并到要素分支中。因此,主分支包含一些更新的代码和一些过时的代码,而功能分支包含一些更新的代码和一些过时的代码 尝试将主分支合并到要素分支时,有时主分支希望恢复要素分支上所做的更改,即使要素分支具有最新的代码 如何防止这种情况 这意味着主分支也需要合并到要素分支中 这不是最佳做法: 您合并“上游”(从功能到主控),其中合并冲突更为有限

我有一个主分支和一个功能分支。功能分支会以每天更新的代码合并到主分支中。但是,经常发生的情况是,更改直接合并到主分支中,而不首先经过要素分支

这意味着主分支也需要合并到要素分支中。因此,主分支包含一些更新的代码和一些过时的代码,而功能分支包含一些更新的代码和一些过时的代码

尝试将主分支合并到要素分支时,有时主分支希望恢复要素分支上所做的更改,即使要素分支具有最新的代码

如何防止这种情况

这意味着主分支也需要合并到要素分支中

这不是最佳做法:

  • 您合并“上游”(从
    功能
    主控
    ),其中合并冲突更为有限(除非在您的情况下,您从其他变更分支同时进化到
    主控
  • 您可能不想合并“下游”(从
    master
    feature
    ),因为
    master
    和其他分支的并发更改几乎可以保证合并冲突,这两个分支都合并到
    feature
理想情况下,您只需删除
功能
,并在
主功能
上重新创建它,然后再次合并需要集成在一起的更改

集成分支变为临时分支,这意味着它甚至不应该合并到主分支:

  • 您可以将更改合并到
    功能
    ,以将它们一起测试
  • 然后选择要合并到
    主版本的更改,因为它们已准备好作为下一版本的一部分
  • 您可以删除
    功能
    ,然后重新创建它

这就是背后的想法。

是否可以使用更具预测性的分支策略?例如。这是否也适用于3个分支的流?1个主分支机构和2个集成分支机构?当前的工作流程是要素分支1与要素分支2合并,这是因为它使审阅更容易。然后,特征分支2合并到主分支中。一旦其合并,将从要素分支1中删除并重新创建。功能分支1是否也应该这样做?换句话说,功能分支1是否应该在功能分支1与功能分支2合并后立即从master中删除并重新创建功能分支1?@simonlombard
gitworkflow
及其集成分支背后的所有想法(您有几个)您永远不会将集成分支合并到
master
:这将为您提供一种合并提交到big以进行调试的方式。在生产中出现问题的情况下,您所知道的只是最后一次合并提交(由许多特性组成,全部捆绑在一起)中存在问题。通过有选择地合并功能分支,每个分支分别合并到
master
git对分
可以在生产中出现问题时,指向正确的功能合并提交,从而简化调试过程。我明白了。这就是我们目前正在做的事情。然而,一旦特征分支被合并,我们就会收到必须有选择地修复的错误。这些变化很小,需要重新审视。这就是我们在特征分支1上进行这些更改的时候,特征分支1应该是主分支的镜像。但是这个分支是如此短暂,因为它一直在工作,所以很难实现审查,所以我们创建了FeatureBranch2,在这里我们测试并批量审查更改。但这就给我们留下了一个问题,即如何使特性分支1与master@simonlombard这将是通过返利,在master上阅读功能。@simonlombard我的意思是返利,而不是阅读,但我的Android手机auto correct不可靠;)