自动变基以删除修改文件的提交?

问题描述

我是 git rebase 的新手并且做了一些有点古怪和愚蠢的事情。 所以假设我有这些提交,它们都修改了同一个文件 file.txt

a -> b -> c -> d -> e

我只想删除提交 c

我对此的策略是将 b 变基到 d 上,保留 d 的更改,使其看起来像这样

a -> b -> d -> e

我正在尝试使用此命令执行此操作

git rebase --rebase-merges --onto c^ c

这导致合并失败,我也用 -s ours 尝试过,但也失败了。

然而,当每次提交修改不同的文件时,这有效。

我应该怎么做才能实现这个目标?

解决方法

在这种情况下,您几乎肯定会遇到冲突,因为确实存在冲突,而且没有办法避免处理这种情况。您必须解决冲突,然后运行 ​​git rebase --continue

这在每次提交修改不同文件时有效,因为涉及不同文件的提交通常不会发生冲突(除非有重命名或复制)。