git revert与git reset最大的不同是,git revert 仅仅是撤销某次提交。
首先要找到对应的版本号:git log
日志显示了多个commit 的历史,commit后面跟的就是版本号(一长串字母加数字组合)
-
git reset --hard xxx
我们得到
当输入:git reset --hard 2773bfdac15f700cdc2d7ab96e66a6991a986f8d
再输入 git log 时:
晚于这个时间的版本全都不见了
这是vim readme.md 是这样:
之前是这样:
假设我们回退到21:19:00的版本:
成功了!
vim read.md 是这样
再回退:
诶。read就恢复了
使用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 被恢复到最前版本