取消一些合并/提交,但要保留一些



我的合并不好,然后是几个好的提交。我试图恢复不良的合并,但是我不想失去这些更改(即我不想进一步提交,这会消除更改(,我只是不希望它们在分支机构中。

所以我的日志看起来像这样:

7975c057 | Reverts bad merge
40a01d2f | Good commit
3b2c3825 | Good commit
1f3f1858 | Bad merge - code shouldnt be in this branch
37f71a89 | Good commit
... (more good commits...)

如何从分支中删除1f3f1858 | Bad merge7975c057 | Reverts bad merge

恢复合并提交是棘手的,因为合并有两个父母,只能遵循一个父母的道路。如果使用互动式重列,通常您必须完全重做合并。因此,我可能会建议以下策略:

git checkout -b good_branch 37f71a89    # create new branch from 37f71a89
git cherry-pick 3b2c3825                # cherry-pick first good commit
git cherry-pick 40a01d2f                # cherry-pick second good commit

这将使您拥有所需的分支结构,尽管两个"良好"提交实际上将具有新的SHA-1哈希价值提交在功能上与其原始对应物相同(。

相关内容

  • 没有找到相关文章

最新更新