2018-06-16|2018-06-16 git revert git reset

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

2018-06-16|2018-06-16 git revert git reset
文章图片
image.png 日志显示了多个commit 的历史,commit后面跟的就是版本号(一长串字母加数字组合)
  1. git reset --hard xxx
    当输入:git reset --hard 2773bfdac15f700cdc2d7ab96e66a6991a986f8d


    我们得到 2018-06-16|2018-06-16 git revert git reset
    文章图片
    image.png
    再输入 git log 时:
    2018-06-16|2018-06-16 git revert git reset
    文章图片
    image.png
    晚于这个时间的版本全都不见了
    这是vim readme.md 是这样:

    2018-06-16|2018-06-16 git revert git reset
    文章图片
    image.png
    之前是这样:
    2018-06-16|2018-06-16 git revert git reset
    文章图片
    image.png
    假设我们回退到21:19:00的版本:
    2018-06-16|2018-06-16 git revert git reset
    文章图片
    image.png
    成功了!
    vim read.md 是这样
    2018-06-16|2018-06-16 git revert git reset
    文章图片
    image.png
    再回退:

    2018-06-16|2018-06-16 git revert git reset
    文章图片
    image.png
    诶。read就恢复了
    2018-06-16|2018-06-16 git revert git reset
    文章图片
    image.png
    使用hard 恢复的的版本还是处在commit状态
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容(这个要特别注意,因为本地代码会修改)
git reset --soft

2018-06-16|2018-06-16 git revert git reset
文章图片
image.png soft: 回退到某个版本 并且处于待commit的状态

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

2018-06-16|2018-06-16 git revert git reset
文章图片
image.png git log 查看

2018-06-16|2018-06-16 git revert git reset
文章图片
image.png 输入 git revert 0bec6e2ad35ce68582e7d998a195f564a61a14b0

2018-06-16|2018-06-16 git revert git reset
文章图片
image.png 输入 git revert 2773bfdac15f700cdc2d7ab96e66a6991a986f8d

2018-06-16|2018-06-16 git revert git reset
文章图片
image.png
【2018-06-16|2018-06-16 git revert git reset】git log

2018-06-16|2018-06-16 git revert git reset
文章图片
image.png
这里revert 的过程被记录下来了
并且 read.md 被恢复到最前版本
2018-06-16|2018-06-16 git revert git reset
文章图片
image.png

    推荐阅读