Git 完全删除推送的提交

Git 完全删除推送的提交,git,Git,我有一个大约有16次提交的存储库,全部推送到远程服务器,全部只在主分支上提交 我希望最后3次承诺被完全抹去,就好像它们从未发生过一样,这样看回购协议的人只会看到前13次。 我甚至不想知道最后三个 我该怎么做?对于不同的情况,我看到了很多不同的答案。我只需要这一特定场景的帮助。 git reset --hard HEAD~3 您将删除最后3次提交,但由于您已将其推送到远程,因此需要强制推送 git push origin HEAD --force 请注意,如果其他人已经拉取了这些提交,当他们再

我有一个大约有16次提交的存储库,全部推送到远程服务器,全部只在主分支上提交

我希望最后3次承诺被完全抹去,就好像它们从未发生过一样,这样看回购协议的人只会看到前13次。 我甚至不想知道最后三个

我该怎么做?对于不同的情况,我看到了很多不同的答案。我只需要这一特定场景的帮助。

git reset --hard HEAD~3
您将删除最后3次提交,但由于您已将其推送到远程,因此需要强制推送

git push origin HEAD --force
请注意,如果其他人已经拉取了这些提交,当他们再次拉取时,删除的提交将被合并并可能被推回


作为旁注,
git revert
通常是最好的方法,因为它不会重写历史,避免了可能出现的复杂情况。

您可以强制推送:您可以在这里找到答案:您可能会重复这3次提交,您可能应该还原这3次提交。如果你使用核弹并强制推送,那么使用该分支的任何其他人都肯定会知道有问题。git reset--hard会留下这些提交的历史记录吗@唐纳德沙希尼@Rumid