场景一:当你提交了一次修改,但是发现修改的方法是错误的,想要回滚到之前的状态。
场景二:当你做了很多次改动,但是周四发布的时候,有部分功能不能发布。
场景三:当你提交了多次后,发现线上版本有问题,需要紧急修复。
......
STEP1、备份想要回滚的分支
备份很重要,是一个很好的习惯,即遍无法回滚,也不要造成现有分支代码错乱。
git checkout -B branchBackUp
SETP2、找到回滚节点
首先说一下什么是回滚节点,简单的就是指你的提交历史记录,每一个提交历史记录就是一个节点。那么如何查找呢?
#查看所有的提交记录
git log
commit 0216f1fb3d8ed5d6298c4f0ae3d7454c4ad23a22
Author: david <david@david>
Date: Fri Aug 24 17:03:28 2018 +0800
modify add step 4
#通过show commit id查看具体的改动
git show 0216f1fb3d8ed5d6298c4f0ae3d7454c4ad23a22
STEP3、回滚到指定提交节点
M1:硬回滚,指将提交指针HEAD移动到回滚节点,同时回滚节点之后所提交的代码全部丢弃。
git reset --hard
M2:软回滚,指将提交指针HEAD移动的回滚节点,但是回滚节点之后提交的代码都会保留到暂存区。
git reset --soft
注意:合理使用混滚方式,方能事半功倍,建议使用软回滚,除非你确定不想要提交的代码了。
STEP4、撤销回滚
这个是终极大招,因为这是后悔药,即便是硬回滚也没有关系,代码一样可以恢复如初。在git中,checkout,reset等操作都会被记录下来,方便撤销操作。
#查看操作历史
git reflog
总结
本文只是抛砖引玉,还有很多更高级的操作,有兴趣的同学自行研究!
网友评论