【发布时间】:2016-01-04 02:01:24
【问题描述】:
当我在处理feature1 时,在下面的提交点A,我被要求在其上构建另一个mod。我们称之为feature1+。这意味着图表如下所示:
master: o---o---o---o---o
\
feature1: o---e---e---e---O---A
\
feature1+: o---c---c---X
现在我想将feature1+ 合并回feature1,但我意识到X 和A 中存在的文件之间的更改很小; c 提交中有两个新的跟踪文件。
在此过程中,我开始整合feature1 上的提交,将e 提交重新设置为一个o' 以减少最后返回到master 上的提交数量。我相信有效的图表是这样的:
master: o---o---o---o---o
\
feature1: o---o'---O---A
\
feature1+: o---e---e---e---O---A---c---c---X
但是,这意味着feature1+ 在我运行时也会将e 提交转储到feature1:
git checkout feature1
git merge feature1+
这给了我:
master: o---o---o---o---o
\
feature1: o---o'---O---A---e---e---e---O---c---c---X
我想在不重新引入 e 的情况下添加 c 提交。换句话说,将它合并回这个:
master: o---o---o---o---o
\
feature1: o---o'---O---A---c---c---X
我该怎么做?我尝试在 A 的 feature1 中仅 checkout 来自 c 的新文件,但当然这会提供文件而不保留其历史记录。
【问题讨论】: