如何在推送后返回到之前的 git 提交

How to go back to the previous git commit after pushing it

早上我做了一个提交并将它推送到主分支,它被合并了,因为它只是一个小改动。

但后来我完全搞砸了整个项目。现在我想回到我早上所做的最后一次提交,我不希望我的新更改被隐藏或其他什么。我只想把我的代码放到我最后一次提交的地方。

我正在为 git 使用 android 工作室终端,这与普通 git 终端基本相同。

如果它是一个私人项目,你可以简单地回到历史(如果你从来没有犯过那件事)。这可以通过 git reset --hard some-revision 轻松完成。提供您要返回的修订的 ID 以及它将从分支中消失后的修订。 小心:这会消除您在工作树中可能未提交的任何更改。

最后,如果您将错误的修订推送到远程分支,您将不得不强制推送到远程以将其设置为旧修订:

git push -f some-remote some-branch

就是这样。

这是一个很好解释的问题:How do I revert a Git repository to a previous commit?

或者,您可以使用 git 还原 HEAD 或 git 重置。我会选择 git 还原。这是一个回滚更改的命令,但不像正常的 git 重置。它不会删除最新的提交,但会确定如何撤消上次提交的更改。 git revert 需要提交引用。当您使用引用 HEAD 时,最新的提交将被撤消。

就像我说的,git reset 也可以使用: git重置[][]

This form resets the current branch head to <commit> and possibly updates the index (resetting it to the tree of <commit>) and the working tree depending on <mode>. If <mode> is omitted, defaults to --mixed. The <mode> must be one of the following:

(https://git-scm.com/docs/git-reset)