我做了一些愚蠢的事情,并意外地将一个主题分支合并到我的主分支中,然后将其推送到github(其他人已经拉过)。为了确保这是一个完全愚蠢的错误,我把它拉到我的生产服务器上。
我在适当的时间里羞愧地垂头丧气,现在我需要弄清楚如何在推进提交历史的同时有效地回滚代码提交。
为了让我的生产代码正确结帐,我运行了git checkout hashoflettersandnumbers
,这就是我想要生产HEAD的提交。
我运行git reset hashoflettersandnumbers
然后git clean以从该提交中删除更改,但我似乎无法将该代码作为主分支的HEAD并进行新的提交。
答案 0 :(得分:5)
在每个分支上使用git revert
。这将创建一个新的提交,可以永久保留您的错误,但会返回与合并之前相同的树。
例如,如果123456是合并提交...
$ git checkout master
$ git revert 123456
$ git checkout topic-branch
$ git revert 123456
这假设这不是“快进”合并。