Git:cherry pick插入其他提交的更改

时间:2015-06-06 02:01:31

标签: git cherry-pick

我一直在尝试从一个brach到另一个brach挑选一个特定的提交。让我们说我的历史是这样的:

 A - B - C - D   (master)
      \
       X - Y     (feature)

现在,假设我想将更改提交D on master到功能分支,就在Y之后。当我尝试执行此操作时,存在合并冲突,我可以看到跟踪合并时提交C,虽然我只想挑选提交D。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

git cherry-pick mastergit cherry-pick <id-of-D>执行从CD的差异,然后尝试将该差异应用于当前树/提交(在这种情况下,树为Y)。正如您所指出的,您将会看到提交C&#34;的痕迹。如果DC中也发生变化的事物做出更改或附近,则因为差异带有上下文。它是允许git在Y中找到要更改的内容的上下文,以防行,行或函数或整个文件被移动(例如,在X和/或{{ 1}})。

Git不理解语义,只理解语法:如果语法匹配,它只会巧妙地选择,并且需要你的帮助(而不知道向你展示什么)不