Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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_Git Branch_Git Merge - Fatal编程技术网

如何使用git分支

如何使用git分支,git,git-branch,git-merge,Git,Git Branch,Git Merge,作为git新手,我有一个愚蠢的问题——使用特性分支的正确方法是什么 根据我收集的信息,我认为应该这样使用: 获得了一些“开发”分支机构,这些分支机构是从中签出的: "feature-1" "feature-2" "feature-3" 等等 现在,一个或多个开发人员将处理一个或多个功能分支,当团队负责人希望将所有内容粘合在一起并进行测试时,他会将这些功能合并回“开发”主干中。 然而,git似乎无法手动选择每个特性分支要保留的更改(尝试了递归、耐心和其他合并策略),因此最终,每个分支都会覆盖以前

作为git新手,我有一个愚蠢的问题——使用特性分支的正确方法是什么

根据我收集的信息,我认为应该这样使用:

获得了一些“开发”分支机构,这些分支机构是从中签出的:

"feature-1"
"feature-2"
"feature-3"
等等

现在,一个或多个开发人员将处理一个或多个功能分支,当团队负责人希望将所有内容粘合在一起并进行测试时,他会将这些功能合并回“开发”主干中。 然而,git似乎无法手动选择每个特性分支要保留的更改(尝试了递归、耐心和其他合并策略),因此最终,每个分支都会覆盖以前合并到“开发”中的分支。 随着开发人员继续在他们的分支上工作,团队领导试图不时地将它们合并到“开发”中以合并更改,事情变得更加糟糕

显然,这不是为特性进行分支的正确方法。但是什么是正确的方法呢

谢谢

编辑:

为了进一步说明,让我们考虑在开发分支中的这些文件:

fileA (develop)
fileB (develop)
fileC (develop)
现在合并回“feature-1”,它只涉及fileA:

fileA (conflict, theoretically solvable by the recursive/theirs strategy)
fileB (develop)
fileC (develop)
下一步合并回仅涉及文件B的“功能-2”:

fileA (overwritten by feature-2!!!)
fileB (conflict, theoretically solvable by the recursive/theirs strategy)
fileC (develop)

如何处理fileA?我希望它保留“功能1”版本。

似乎你还没有尝试过你所问的,只是对它的工作原理做出假设

如果这是真的,那么你的假设是不正确的。当您在git中合并2个分支时-它计算源分支开始与
(或您正在合并的任何其他变更集)之间的差异,并将其应用于目标变更集

因此,按照您的示例-
fileA
在合并
feature-2
时不会以任何方式修改,因为它没有在
feature-2
中修改


所以根本就没有问题。

似乎你还没有尝试过你所问的,只是对它的工作原理做出假设

如果这是真的,那么你的假设是不正确的。当您在git中合并2个分支时-它计算源分支开始与
(或您正在合并的任何其他变更集)之间的差异,并将其应用于目标变更集

因此,按照您的示例-
fileA
在合并
feature-2
时不会以任何方式修改,因为它没有在
feature-2
中修改


所以根本就没有问题。

似乎你还没有尝试过你所问的,只是对它的工作原理做出假设

如果这是真的,那么你的假设是不正确的。当您在git中合并2个分支时-它计算源分支开始与
(或您正在合并的任何其他变更集)之间的差异,并将其应用于目标变更集

因此,按照您的示例-
fileA
在合并
feature-2
时不会以任何方式修改,因为它没有在
feature-2
中修改


所以根本就没有问题。

似乎你还没有尝试过你所问的,只是对它的工作原理做出假设

如果这是真的,那么你的假设是不正确的。当您在git中合并2个分支时-它计算源分支开始与
(或您正在合并的任何其他变更集)之间的差异,并将其应用于目标变更集

因此,按照您的示例-
fileA
在合并
feature-2
时不会以任何方式修改,因为它没有在
feature-2
中修改


所以根本没有问题。

这是“正确的方式”,只要正确地合并它,一切都会好起来。这可能会退化为意见型讨论,但我不确定是否需要标记它。我个人认为“如何在git中进行分支”是一个宗教讨论。如果您可以将其改写为“我们希望以a-b-c的方式在git中进行分支,但我们得到的是x-y-z错误”,您将更有可能得到有用的答案。@zerkms愿意评论我的编辑吗?@shoover尽管git在每一条街上都受到吹捧,但如果这个问题能够引发火焰战争,我发现它是相当不成熟的。”fileA(被feature-2覆盖!!!)“---怎么可能?如果
fileA
没有在
F-2
中更改,它将保持不变。这是“正确的方法”,只要正确地合并它,一切都会好起来。这可能会退化为意见类型的讨论,但我不确定是否要标记它。我个人认为“如何在git中进行分支”是一个宗教讨论。如果您可以将其改写为“我们希望以a-b-c的方式在git中进行分支,但我们得到的是x-y-z错误”,您将更有可能得到有用的答案。@zerkms愿意评论我的编辑吗?@shoover尽管git在每一条街上都受到吹捧,但如果这个问题能够引发火焰战争,我发现它是相当不成熟的。”fileA(被feature-2覆盖!!!)“---怎么可能?如果
fileA
没有在
F-2
中更改,它将保持不变。这是“正确的方法”,只要正确地合并它,一切都会好起来。这可能会退化为意见类型的讨论,但我不确定是否要标记它。我个人认为“如何在git中进行分支”是一个宗教讨论。如果您可以将其改写为“我们希望以a-b-c的方式在git中进行分支,但我们得到的是x-y-z错误”,您将更有可能得到有用的答案。@zerkms愿意评论我的编辑吗?@shoover尽管git在每一条街上都受到吹捧,但如果这个问题能够引发火焰战争,我发现它是相当不成熟的。”fileA(被feature-2覆盖!!!)“---怎么可能?如果
fileA
没有在
F-2
中更改,它将保持不变。这是“正确的方式”,只要正确地合并它,一切都会好起来。这可能会退化为意见类型的讨论,但我不确定eno