git 版本回退
代码提交完发现有问题怎么办,此时就会用到版本会退了
git回退的命令是 :
git reset commit_id
怎么得到commit_id 呢? 用git log 命令
$ git log
commit 9e6bb089b6d8b53cf7e86c805b97568a61e2873c6
Author: sike <sike@mail.com>
Date: Wed Jan 9 19:56:09 2019 +0800
第三次提交
commit 6b0c2ac0e2fa7b0f7b38a9c89f340d0d5101b62b
Author: sike <sike@mail.com>
Date: Tue Jan 8 16:53:52 2019 +0800
第二次提交
commit 619c17b8f9aafafe37d17526d8d3b57fa8ad96fe
Author: sike <sike@mail.com>
Date: Tue Jan 8 16:29:58 2019 +0800
第一次提交
有了commit_id 我们就可以回退到我们想要的版本了,比如我们想要回退到第一次提交,执行下面的的命令就可以了
git reset --hard 619c17b8f9aafafe37d17526d8d3b57fa8ad96fe
这里我们用了 reset 的 --hard 模式。
reset 有三种模式:–soft | --mixed | --hard
–mixed
会保留源码,就是你现在工作区的代码不会变,只是将git commit信息回退到了某个版本.
git reset --mixed 619c17b8f9aafafe37d17526d8d3b57fa8ad96fe
//第一次和第二次修改的代码不会消失
//git reset 默认是 --mixed 模式
//git reset --mixed 等价于 git reset
–soft
保留源码,只回退到commit 信息到某个版本.不涉及index的回退,相当于回退到git add 之后 git commit 之前,如果还需要提交,直接commit即可.
git reset --soft 619c17b8f9aafafe37d17526d8d3b57fa8ad96fe
–hard
源码也会回退到某个版本,一般在当前分支回退到某个版本编译发布上线使用此模式
git reset --hard 619c17b8f9aafafe37d17526d8d3b57fa8ad96fe