0

假设我有 A--B--C--D--E--F--G

在提交 C 上有“水平滚动功能”。后来我们改变了主意,在提交 D 上出现了“垂直滚动”。然后 E、F、G 是不影响视图的后端数据库迁移更改。

但是现在我们决定再给水平滚动一次机会,我们如何恢复水平滚动呢?我不想回到 C,因为我想保留 E、F、G。我想转发合并 C ......我猜合并不是正确的术语,因为 C 已经存在于这个分支的历史中。我想我可以将 C 中的特定文件检出到我当前的工作目录中,但这似乎是手动的,我必须记住修改了哪些视图文件和 css 文件。

有没有办法在 C 和 G 之间生成补丁差异,然后将其应用到当前工作目录?那行得通吗?我怎么做?

4

1 回答 1

1

除了已经提到的cherry-pick(@titaniumdecoy)之外,还有交互式rebase:(git rebase -i C这意味着您有机会重写历史,就好像没有D一样)。如果您已经发布了历史记录,它当然会导致合并问题(如果已经有人拥有历史记录,例如示例)。在这种情况下,如果 D 是 C 的 revert ( git revert C),cherry-pick 可能会起作用。否则,您最好还原 D: git revert D

于 2012-07-10T18:38:11.343 回答