我一直在尝试从一个brach到另一个brach挑选一个特定的提交。让我们说我的历史是这样的:
A - B - C - D (master)
\
X - Y (feature)
现在,假设我想将仅更改提交D on master到功能分支,就在Y之后。当我尝试执行此操作时,存在合并冲突,我可以看到跟踪合并时提交C,虽然我只想挑选提交D。
我错过了什么?
答案 0 :(得分:2)
git cherry-pick master
或git cherry-pick <id-of-D>
执行从C
到D
的差异,然后尝试将该差异应用于当前树/提交(在这种情况下,树为Y
)。正如您所指出的,您将会看到提交C
&#34;的痕迹。如果D
对C
中也发生变化的事物做出更改或附近,则因为差异带有上下文。它是允许git在Y
中找到要更改的内容的上下文,以防行,行或函数或整个文件被移动(例如,在X
和/或{{ 1}})。
Git不理解语义,只理解语法:如果语法匹配,它只会巧妙地选择,并且需要你的帮助(而不知道不向你展示什么)不