撤消错误的 Git 更改

2025-06-08

撤消错误的 Git 更改

前几天,我收到一位读者的邮件,他很贴心地询问如何撤销错误的提交。
我回头看了看我之前的文章,发现我之前好像都没记录过这个问题,所以就来记录一下吧。

我们将探讨几个层面的变革。每个层面都需要略有不同的方法。

  • 您尚未提交更改
  • 撤消尚未推送的提交
  • 撤消已推送的提交

注意:本文介绍了这些命令。大多数 GUI 都提供了这些命令的可视化集成。

撤消尚未在 Git 中提交的更改

可能发生的情况是,您做了一些更改,但很快意识到自己做的事情是错误的,应该予以撤销。

注意:您可以使用git status查看所有打开的更改

获取要恢复的文件的文件名并执行以下命令。

git checkout filename.extension
Enter fullscreen mode Exit fullscreen mode

此命令将文件恢复到原来的状态。

您可以在下面看到一个示例,其中我更改了astro.config.mjs文件并恢复了它们。

撤消 Git 中的更改

撤消尚未推送的提交

也许你已经提交了更改。
幸运的是,你还没有推送它们。

这可能由多种原因造成。也许您注意到没有包含所有文件,或者您错过了一个机会。

运行以下命令来恢复最后一次提交。

git reset --soft HEAD~
Enter fullscreen mode Exit fullscreen mode

注意:您可以通过在末尾放置数字来指定多个提交。

例如,如果我们想撤消最后两次提交,我们可以运行以下命令。

git reset --soft HEAD~2
Enter fullscreen mode Exit fullscreen mode

您可以在下面看到一个示例,其中我提交了两项更改,然后重置了我的提交,以便我可以再次进行更改。

在 Git 中撤消已提交的更改

撤消已推送的提交

这是最常见的情况,也是最混乱的情况。
您已将代码提交并推送到 Git。

请注意,下面描述的选项不会删除之前的提交。它只是将其恢复到原来的状态。

第一步是确保你处于一个干净的工作目录。你不应该有任何新的更改。

然后,您需要找到要撤消的特定提交的哈希值。您可以在在线仓库(例如 GitHub)上找到它们。

GitHub 提交哈希

获取此哈希值,然后返回到您的终端。
现在,您可以通过执行以下命令来还原此提交。

git revert f193a76 --no-edit
Enter fullscreen mode Exit fullscreen mode

注意:这--no-edit是可选的。这样不会提示你编辑提交信息

一旦执行,您会注意到它将执行与本地提交相反的操作。

该命令将使文件恢复到之前的状态。

现在剩下的就是推送恢复的代码。

git push
Enter fullscreen mode Exit fullscreen mode

当您查看更改时,您会看到旧的提交仍然存在,但新的恢复提交会替换更改。

Git 恢复已推送的提交

感谢您的阅读,让我们联系起来!

感谢您阅读我的博客。欢迎订阅我的电子邮件简报,并在FacebookTwitter上与我联系。

鏂囩珷鏉ユ簮锛�https://dev.to/dailydevtips1/undo-wrong-git-changes-32mc
PREV
原始 JavaScript 文本转语音 💬
NEXT
面向开发人员的十大 Chrome 扩展程序👀