git 提交的撤销和恢复

查看某次提交旧版本里的内容

  • git show <commit-id>:path/to/file

回滚最近一次提交里的某个文件的修改, 并保留在工作区, 上次提交仍然存在,(适合提交已经推送到远程场景)

  • git restore --source=HEAD~1 -- path/to/file

回滚最近一次提交,但保留改动到暂存区, 常用于只修改一下提交message,或者再补充几个文件重新提交(适合提交未推送到远程的场景)

  • git reset --soft HEAD~1

回滚最近一次提交,但保留改动到工作区, 常用于把上次提交拆开,挑文件重新提交(适合提交未推送到远程的场景)

  • git reset HEAD~1

撤销很久之前某次提交对某个文件的修改, 之前的提交仍然存在,会生成一个新的提交(适合很早之前的提交修改)

  • git diff <commit-id>^ <commit-id> -- path/to/file | git apply -R

从很早之前的某次提交中恢复某个文件的全部内容(此方案会将整个文件恢复到之前的某次提交,因此那次提交后面的改动也会丢失)

  • git restore --source <commit-id> -- path/to/file

回滚指定的某次提交, 生成新的提交(适合提交已推送到远程的场景)

  • git revert <commit-id>

回滚到指定的某次提交(适合回滚到指定提交之后的所有提交未推送到远程的情况, 此命令风险很高会丢失指定提交之后的所有提交)

  • git reset --hard HEAD
posted @ 2026-04-10 23:04  箫笛  阅读(38)  评论(0)    收藏  举报