概述
有两类情形需要做版本恢复。一是整个仓库回退到某一个版本,二是单个文件回退到某一个版本。两者的操作方式是不同的。
操作
整个仓库回退到某一个版本
查看并选取需要回退的commit id
git log | less
回退到其中一个版本
git reset --hard [commit_id]
推到远端
git push -f // -f 表示强制推送,否则推不上去
操作后,远端所有commit_id后的提交记录均消失了。
单个文件回退到某一个版本
查看需要修改的文件,并确定回退的commit_id
git log [file] | less
回退到某个指定版本
git restore --source [commit_id] --worktree [file]
其中worktree之后可以跟文件和文件夹
之后文件的状态变成modified,可以走正常的add, commit, push流程了
在日志里会存在这一次的回退记录