Git删除推送提交

时间:2012-11-27 04:11:47

标签: git github

我在我的项目中使用git存储库。我不小心推了2个我不应该提交的提交。在某些人之间已经做出了承诺。是否有可能删除我推送的提交,或者我必须删除我的代码更改并将其作为新提交推送,因为有人已经提交了它。

Git Master分支:

由我提交A //

由我提交B //

通过某人提交C //

现在我必须删除Commit A和B离开Commit C. 任何帮助都将非常感激。

3 个答案:

答案 0 :(得分:5)

git reset --hard HEAD~1

其中HEAD~1表示在head之前提交。

或者找到你想要的提交的提交id(查看git log的输出),然后执行以下操作:

git reset --hard <sha1-commit-id>

答案 1 :(得分:3)

你必须revert这些提交。

从技术上讲,它的作用是删除这些更改并进行新的提交,撤消它们。

现在,恢复它们将使它们留在历史上,但通常没关系。如果那是完全不可接受的,那么请看一下像filter-branch和force push这样的解决方案。

答案 2 :(得分:0)

git rebase --onto master~3 master~1 master

您可以通过命令 git help rebase ,然后 - 到选项查看帮助,或者看到它here。 该文档的例子与您的情况一样。