You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过命令完全撤销刚做出的文件修改操作?

撤销Git文件修改的几种常用方法

嘿,别慌!撤销文件改动得看你当前的操作阶段,我把每种场景对应的命令都整理好了,你对照自己的情况来就行:

1. 只修改了文件,还没执行git add(工作区改动)

这种情况最简单,直接丢弃工作区的修改,恢复到上次提交的状态:

  • 单个文件:git checkout -- <你的文件名> 或者 新版本Git用git restore <你的文件名>
  • 所有文件:git checkout . 或者 git restore .

注意:这两个命令会直接丢掉你还没暂存的改动,没法恢复,执行前最好确认清楚!

2. 已经执行了git add,但还没git commit(暂存区改动)

得先把暂存区的改动撤回到工作区,再处理:

  1. 撤销单个文件的暂存:git reset HEAD <你的文件名> 或者 git restore --staged <你的文件名>
  2. 撤销所有文件的暂存:git reset HEAD 或者 git restore --staged .
    之后再用上面「工作区改动」的命令丢弃修改就行。

如果你想一步到位直接回到提交状态,也可以用git reset --hard HEAD,但同样要注意,这个命令会直接丢掉所有暂存和工作区的改动,谨慎使用!

3. 已经执行了git commit,但还没推送到远程仓库

这时候要撤销提交,分两种需求:

  • 想保留修改,只是撤销提交:git reset --soft HEAD~1,这样修改会回到暂存区,你可以调整后重新提交
  • 想彻底丢弃这次提交的所有改动:git reset --hard HEAD~1,这个命令会直接删除最近一次提交和对应的所有改动,非常危险,执行前一定要确认没有需要保留的内容!

最后建议你执行任何撤销操作前,先跑一遍git status,看看当前文件处于哪个阶段,这样就不会搞错命令啦~

内容的提问来源于stack exchange,提问作者Anson Savage

火山引擎 最新活动