撤消错误的 Git 更改
前几天,我收到一位读者的邮件,他很贴心地询问如何撤销错误的提交。
我回头看了看我之前的文章,发现我之前好像都没记录过这个问题,所以就来记录一下吧。
我们将探讨几个层面的变革。每个层面都需要略有不同的方法。
- 您尚未提交更改
- 撤消尚未推送的提交
- 撤消已推送的提交
注意:本文介绍了这些命令。大多数 GUI 都提供了这些命令的可视化集成。
撤消尚未在 Git 中提交的更改
可能发生的情况是,您做了一些更改,但很快意识到自己做的事情是错误的,应该予以撤销。
注意:您可以使用
git status
查看所有打开的更改
获取要恢复的文件的文件名并执行以下命令。
git checkout filename.extension
此命令将文件恢复到原来的状态。
您可以在下面看到一个示例,其中我更改了astro.config.mjs
文件并恢复了它们。
撤消尚未推送的提交
也许你已经提交了更改。
幸运的是,你还没有推送它们。
这可能由多种原因造成。也许您注意到没有包含所有文件,或者您错过了一个机会。
运行以下命令来恢复最后一次提交。
git reset --soft HEAD~
注意:您可以通过在末尾放置数字来指定多个提交。
例如,如果我们想撤消最后两次提交,我们可以运行以下命令。
git reset --soft HEAD~2
您可以在下面看到一个示例,其中我提交了两项更改,然后重置了我的提交,以便我可以再次进行更改。
撤消已推送的提交
这是最常见的情况,也是最混乱的情况。
您已将代码提交并推送到 Git。
请注意,下面描述的选项不会删除之前的提交。它只是将其恢复到原来的状态。
第一步是确保你处于一个干净的工作目录。你不应该有任何新的更改。
然后,您需要找到要撤消的特定提交的哈希值。您可以在在线仓库(例如 GitHub)上找到它们。
获取此哈希值,然后返回到您的终端。
现在,您可以通过执行以下命令来还原此提交。
git revert f193a76 --no-edit
注意:这
--no-edit
是可选的。这样不会提示你编辑提交信息
一旦执行,您会注意到它将执行与本地提交相反的操作。
该命令将使文件恢复到之前的状态。
现在剩下的就是推送恢复的代码。
git push
当您查看更改时,您会看到旧的提交仍然存在,但新的恢复提交会替换更改。
感谢您的阅读,让我们联系起来!
感谢您阅读我的博客。欢迎订阅我的电子邮件简报,并在Facebook或Twitter上与我联系。
鏂囩珷鏉ユ簮锛�https://dev.to/dailydevtips1/undo-wrong-git-changes-32mc