Git:恢复合并提交,但保存保存后续提交(删除合并提交后)

时间:2019-05-15 17:05:06

标签: git

两周前,分支“ branch-one”(在两个月前创建,包含很多旧代码)合并为“ master”,此提交的名称为“ commit123”。合并后,团队工作并做出了很多承诺。需要删除此合并,但保存后续提交。

我看到了解决方案:在进行后续选择的添加之后,还原合并提交,但这是长久的解决方案。

有人能建议很多乐观和简短的解决方案吗?

2 个答案:

答案 0 :(得分:1)

如果,您在重写历史记录时没有问题,请摆脱历史记录中的合并并在其后重播历史记录。我们将该修订称为 merge-rev

git checkout merge-rev~1 # right before the revision you want to get rid of
git cherry-pick merge-rev..master # linear history between merge and master (not including the merge you want to get rid). Adjust if the branch is not master
# if you like the results
git branch -f master
git push -f some-remote master # if you need to push somewhere to replace the old branch

这是假设您要删除的合并后历史记录是线性的。

答案 1 :(得分:0)

e.x:
we have 3 flow file.
1) prepare-file.xml
2) prepare-database.xml
3) enrich-object.xml
which eventually call like prepare-file.xml-->prepare-database.xml-->enrich-object.xml

压缩后的提交与合并具有相同的内容,但更容易在主服务器上还原。