我在我的项目中使用git存储库。我不小心推了2个我不应该提交的提交。在某些人之间已经做出了承诺。是否有可能删除我推送的提交,或者我必须删除我的代码更改并将其作为新提交推送,因为有人已经提交了它。
Git Master分支:
由我提交A //
由我提交B //
通过某人提交C //
现在我必须删除Commit A和B离开Commit C. 任何帮助都将非常感激。
答案 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。
该文档的例子与您的情况一样。