撤消最后的 git 提交推送或最后 2

To undo the last git commit push or the last 2

我们如何撤消最后的 git 提交推送或最后 2 次推送,通过简单引用那个数字?即例如

git revert -n1
git revert -n2
git reset -n2

我很git菜鸟。谢谢

这个问题的答案在很大程度上取决于你到底想要什么,但我会给你一些一般信息。

要真正撤销提交,您可以使用git reset。这将把你的分支的 HEAD 放在 2 次提交前的位置,让你的文件保持现在的样子:

git reset HEAD~2 --soft

如果你想让文件恢复到原来的样子,你可以使用--hard:

git reset HEAD~2 --hard

现在,如果您已经推送了提交,这会有点问题,因为 Git 应该只添加提交 - 从不删除。因此,如果您尝试推送之前的提交,您将收到一条错误消息,提示您处于远程状态。

如果您确定要这样做,可以通过将 --force 传递给 git push 来强制更改历史记录。如果您与其他人合作,这可能会产生问题:当他们尝试拉取时,如果他们已经有了您要删除的提交,他们也会收到错误,并且需要将 --force 传递给 git pull.

为了允许在不更改提交历史记录的情况下还原事物,git revert 存在:它创建一个新的提交,它的作用与还原的提交相反。这会将更改保留在提交日志中,但实际文件将与之前一样。如果你想要这个,你可以 运行:

git revert HEAD~2..HEAD

这将为 HEAD(您的最后一次提交)和 HEAD~1(您的倒数第二个提交)创建反转提交,将文件保留为 2 次提交前的状态。如果你只想恢复一个提交,你可以只指定那个。要仅还原最新的提交,您可以使用:

git revert HEAD