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 cherry pick是否意识到祖先,而不仅仅是应用补丁?_Git_Git Merge_Git Cherry Pick - Fatal编程技术网

git cherry pick是否意识到祖先,而不仅仅是应用补丁?

git cherry pick是否意识到祖先,而不仅仅是应用补丁?,git,git-merge,git-cherry-pick,Git,Git Merge,Git Cherry Pick,如果merge——比如在cherry pick中可以找到聪明和对共同祖先的认识,那就太好了。可能吗 假设我们有这种情况。我们有一个开发,其中提交到dev,并被挑选到release。[1] X----Y---A1---A2---B---Z dev \ \----B' release A1: Remove function foo() A2: Re-add function foo() (ooops, it was needed) and chan

如果
merge
——比如在
cherry pick
中可以找到聪明和对共同祖先的认识,那就太好了。可能吗

假设我们有这种情况。我们有一个开发,其中提交到
dev
,并被挑选到
release
。[1]

X----Y---A1---A2---B---Z   dev
  \
   \----B'                 release

 A1: Remove function foo()
 A2: Re-add function foo() (ooops, it was needed) and change function bar()
     (A1 and A2 are listed together becuase they are two commits, attempts, to fix the same bug.)
 B:  Modify function foo()
 B': B is cherry-picked into the release branch
 X, Y, Z: changes touching unrelated files. No conflicts here.
现在,我们想将
A1
A2
挑选到发布分支中。很明显,我们不能只挑选它们,因为 删除/修改
foo()
时会发生冲突

但是聪明人可以看到A1和A2如何删除和重新添加
foo()
,以及如何将其合并到
release
分支中。你甚至可以做一个算法来做这件事,在
A1,A2
之后发生的
dev
的所有提交都在
release
中,回到之前的提交,然后重新应用
A1,A2,B
按照它们应用于
dev
的顺序,然后获取文件的最终状态,并将其放在
release
分支上的B'之后。(因为在
发布
分支上,不允许修改历史记录。)

这一切都很好,但它很快就会变得毛茸茸的。如果
merge
——比如在
cherry pick
中可以找到聪明和对共同祖先的认识,那就太好了。可能吗

史蒂夫


[1] 我知道你可能觉得这很可笑。请不要麻烦告诉我。老实说,这比你想象的要复杂得多,这是有充分理由的。对于这个问题,我尽量让事情简单化,在这种情况下,多页解释为什么这是正确的做法并不符合任何人的最佳利益。

但是
merge
cherry pick
之间的全部区别。。。
cherry pick
存在的全部原因是为了省略所选提交的祖先引入的更改。你想要的东西可能是合理的,但它比cherry pick的世界观复杂得多,但是合并和cherry pick的整个区别在于。。。
cherry pick
存在的全部原因是为了省略所选提交的祖先引入的更改。你想要的东西可能是合理的,但它比cherry pick的世界观要复杂得多