我必须清理一个远程/公共分支“OLD”,因为它包含一些糟糕/巨大的提交。
OLD - 简化图
(...) -> c234 -> c235(huge to fix) -> c236 -> c237(huge to fix) -> c238 -> c239 -> (...) -> HEAD
这样做我做了:
1)我创建了一个“新”分支。
2)在第一次大型提交(c234)之前回来
3)Cherry在最后一次大量提交之前选择了所有提交。 (C236)
4)然后我在最后一次大量提交(c237)之后从“OLD”分支复制了所有已更改的文件
5)最后创建了许多反映变化的小提交(c235,c237)
现在新增 - 简化图
(...) -> c234 -> c236 -> (many commits reflecting state after c237) -> HEAD
现在我认为我必须将“旧”(c237)之后所做的所有更改改为“新”
新预期 - 简化图
(...) -> c234 -> c236 -> (many commits reflecting state after c237) -> c238 -> c239 -> (...) -> HEAD
我在这个git-rebase -i之前尝试了但是因为这是一个公共回购,它包含很多(有近400个提交到HEAD的OLD)合并,并且我不时要解决冲突 - 女巫可以带我很多天。
任何想法如何处理它。
答案 0 :(得分:0)
听起来(many commits reflecting state after c237)
最终并没有真正重现与提交OLD
中c237
分支中的状态相同的状态。如果你这样做了,你就不应该任何合并冲突。
这意味着您需要在尝试使用rebase之前执行git diff c237
以查看错过的内容。