1、还原一个提交可以用git checkout
checkout 的功能很多,不仅仅是切换分支,其中一个功能就是 [将当前目录中的文件还原到一个特定的版本] 。
git checkout [commit-id]
git checkout 加上参数 [提交的 ID] 就可以了。
其中 [提交的 ID] 可用 git log 查看。上一节我们做了一个提交:
黄色的一长串就是提交ID。
现在我们基于这个提交,对 a.txt 做一些修改。然后再用 git status 观察当前版本库的状态。
git status 提示 a.txt 的状态是 modified的,也是就是较于上一个提交,发生的修改。
git status 还提示了这样一行:use "git checkout -- <file>..." to discard changes in working directory
接下来我们就可以按这个提示用git checkout撤销这个修改,还原到上一个提交。
git checkout -- a.txt
还原操作成功。
最后用一张图做这一节做一个小结:
2、git revert <commit>
撤销指定的提交,commit是指版本号
比如我们想要下面绿框所选的版本,就需要把上面的版本给撤销掉
就需要 git revert 57fcbad241
但是撤销的这个历史会被记录下来,相当于用新的版本覆盖老的版本
3、git reset --hard HEAD
这种方法撤销的时候也会把远程的历史记录给撤销掉
比如要回退到这个版本
git reset --hard 57fcbad241
但是这样会报错,因为有冲突
可以强制推送,在git push 后面加上 --force
______________________________________
参考文章:https://blog.csdn.net/wuzhong8809/article/details/84998791