git revert与git reset最大的不同是,git revert 仅仅是撤销某次提交。
首先要找到对应的版本号:git log

日志显示了多个commit 的历史,commit后面跟的就是版本号(一长串字母加数字组合)
-
git reset --hard xxx
我们得到
当输入:git reset --hard 2773bfdac15f700cdc2d7ab96e66a6991a986f8d
image.png
再输入 git log 时:
image.png
晚于这个时间的版本全都不见了
这是vim readme.md 是这样:
image.png
之前是这样:
image.png
假设我们回退到21:19:00的版本:
image.png
成功了!
vim read.md 是这样
image.png
再回退:
image.png
诶。read就恢复了
image.png
使用hard 恢复的的版本还是处在commit状态
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容(这个要特别注意,因为本地代码会修改)
git reset --soft

soft: 回退到某个版本 并且处于待commit的状态

中午11点提交也没了
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git revert
先修改文件 然后commit

git log 查看

输入 git revert 0bec6e2ad35ce68582e7d998a195f564a61a14b0

输入 git revert 2773bfdac15f700cdc2d7ab96e66a6991a986f8d

git log

这里revert 的过程被记录下来了
并且 read.md 被恢复到最前版本

网友评论