在日常开发中,往往会遇到 “想撤销某些改动” 的需求。不同的时点对应的操作略有区别,下面把 commit 之前、commit 之后(但尚未 push)以及 push 之后 三个阶段分别拆解,并给出对应的 Git 命令与使用要点。
Commit 之前(还没执行 git commit)
修改的文件被没有添加到暂存区(没有执行git add):
git checkout <file path>
已经添加到暂存区(执行了git add):
git restore –staged <flie path>
Commit 已经发生,但尚未 push
git reset –mixed <commit‑sha>
Push 已经完成
git revert <commit-sha>
这个方法会产生回滚日志