撤消意外的git合并而不回退历史

bry*_*mcd 6 git

我做了一些愚蠢的事情,并意外地将一个主题分支合并到我的主分支中,然后将其推送到github(其他人已经拉过).为了确保这是一个完全愚蠢的错误,我把它拉到我的生产服务器上.

在适当的时间内,我已经垂头丧气,现在我需要弄清楚如何在推进提交历史的同时有效地回滚代码提交.

为了让我的生产代码得到正确的结账,我跑了git checkout hashoflettersandnumbers,这就是我想要生产HEAD的提交.

我运行git reset hashoflettersandnumbers然后git clean以从该提交中删除更改,但我似乎无法将该代码作为主分支的HEAD并进行新的提交.

Die*_*Epp 5

使用git revert在每个分支.这将创建一个新的提交,可以永久保留您的错误,但会返回与合并之前相同的树.

例如,如果123456是合并提交...

$ git checkout master
$ git revert 123456
$ git checkout topic-branch
$ git revert 123456
Run Code Online (Sandbox Code Playgroud)

这假设这不是"快进"合并.