git如何合并并选择要从哪个分支中获取的文件

git如何合并并选择要从哪个分支中获取的文件,git,version-control,Git,Version Control,我有 我想合并分支1和2,这样在生成的分支文件中,A将来自分支1,文件C将来自分支2。文件B将由我手动合并,我想从分支1和分支2的一些部分。 我知道合并我能做到 branch 1 -file A -file B -file C branch 2 -file A -file B -file C 但它会自动合并文件A和C,如何确保可以从指定的分支中获取不同的版本。真正的问题是我需要更多的文件,如果你能解释如何在应答命令中获取多个文件,我将不胜感激。谢谢注意在测试回购协议上进行测试,然后在执行此操

我有

我想合并分支1和2,这样在生成的分支文件中,A将来自分支1,文件C将来自分支2。文件B将由我手动合并,我想从分支1和分支2的一些部分。 我知道合并我能做到

branch 1 
-file A
-file B
-file C
branch 2
-file A
-file B
-file C

但它会自动合并文件A和C,如何确保可以从指定的分支中获取不同的版本。真正的问题是我需要更多的文件,如果你能解释如何在应答命令中获取多个文件,我将不胜感激。谢谢

注意在测试回购协议上进行测试,然后在执行此操作之前对您的回购协议进行备份

首先从branch1签出一个新分支,我们称之为“最终分支”

git签出-b最终分支branch1

现在我们将从branch2获取文件C

git签出分支2——fileC.txt

现在您将拥有来自branch1的fileA和来自branch2的fileC

现在我们可以提交这些更改,最后fileA将从branch1进行更改,fileC将从branch2进行更改

git add fileC.txt

git提交-m“最终提交”

如果要签出branch2中的多个文件

git签出分支2—文件1文件2文件3文件4


注意在测试回购上进行测试,然后在执行此操作之前备份您的回购

首先从branch1签出一个新分支,我们称之为“最终分支”

git签出-b最终分支branch1

现在我们将从branch2获取文件C

git签出分支2——fileC.txt

现在您将拥有来自branch1的fileA和来自branch2的fileC

现在我们可以提交这些更改,最后fileA将从branch1进行更改,fileC将从branch2进行更改

git add fileC.txt

git提交-m“最终提交”

如果要签出branch2中的多个文件

git签出分支2—文件1文件2文件3文件4

请注意,您不需要从任何地方获取合并结果内容,特别是,您可以将合并结果设置为工作流中有意义的任何内容。请注意,您越是偏离设置便利工具以提供便利的~通常~样式的工作流,其后续结果就越是偏离有用的方向。当您进行合并提交时,Git假定结果是父历史的正确和完整合并。这不是唯一可能的合并,您可以对相同父对象进行其他合并,并通过合并相同父对象的不同合并来实现有用的合并arms效果


请注意,您不需要从任何地方获取合并结果内容,特别是,您可以将合并结果设置为工作流中有意义的任何内容。请注意,您越是偏离设置便利工具以提供便利的~通常~样式的工作流,其后续结果就越是偏离有用的方向。当您进行合并提交时,Git假定结果是父历史的正确和完整合并。这不是唯一可能的合并,您可以对相同的父级进行其他合并,并通过合并相同父级的不同合并实现有用的合并arms效果。

这与git的粒度相反。Git的存储单元是提交,而不是文件。是否有基于提交的替代方案?樱桃采摘是部分合并的更常见的方法。这与git的粒度不符。Git的存储单元是提交,而不是文件。是否有基于提交的替代方案?樱桃采摘是部分合并更常见的方法。
git checkout b1
git merge b2
git commit -b1
git checkout b1
git merge -n -s ours b2     # set merged parent to b2 but start with purely b1 content
git checkout -p b2:fileB    # select b2 hunks from b2's fileB
git checkout b2:fileC       # take all of b2's fileC
git commit                  # parents and content set properly, make the commit.