从其他提交中插入变更



我一直在尝试从一个分支中挑选一个特定的提交到另一个分支。假设我的历史记录是这样的:

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

现在,假设我想只应用在master上提交D的更改到特性分支,就在y之后。当我尝试这样做时,会有合并冲突,我可以看到合并时提交C的痕迹,尽管我只想选择提交D。

我错过了什么?

git cherry-pick mastergit cherry-pick <id-of-D>CD进行diff,然后尝试将该diff应用于当前的树/提交(在本例中,为Y的树)。如前所述,如果D更改了C中也更改了的内容,那么您将"看到提交C的痕迹",因为diff带有上下文。在Y中,如果行、函数或整个文件被移动了(例如,在X和/或Y中),git可以找到需要更改的内容。

Git不理解语义,只理解语法:它只会在语法匹配的情况下挑选干净的,如果不匹配,它将需要你的帮助(并且不知道显示给你什么)。

相关内容

  • 没有找到相关文章

最新更新