git revert与git reset最大的不同是,git revert 仅仅是撤销某次提交。
首先要找到对应的版本号:git log
image.png
日志显示了多个commit 的历史,commit后面跟的就是版本号(一长串字母加数字组合)
-
git reset --hard xxx
我们得到 image.png
当输入:git reset --hard 2773bfdac15f700cdc2d7ab96e66a6991a986f8d
再输入 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
image.png
soft: 回退到某个版本 并且处于待commit的状态
image.png
中午11点提交也没了
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git revert
先修改文件 然后commit
image.png
git log 查看
image.png
输入 git revert 0bec6e2ad35ce68582e7d998a195f564a61a14b0
image.png
输入 git revert 2773bfdac15f700cdc2d7ab96e66a6991a986f8d
image.png
git log
image.png
这里revert 的过程被记录下来了
并且 read.md 被恢复到最前版本
image.png
网友评论