(1)git reset 操作,这个回退适合本地回退,还没有push到远程仓库
准备,从git pull 一个项目,新建v1.txt,提交push ,v2.txt 提交push ,现在又v1 和 v2 两个文件
新建一个v3 的文件,add ,并commit
测试一,现在项回退一个版本,即没有v3 的版本
git log 查看日志,
太乱了,按q退出, 加参数 git log --pretty=oneline
回退到指定的版本号这里是2ea8这个 ,git reset --hard 2ea83c74,再次查看可以看到已经回退过去了
当然也可以用
git reset --hard HEAD^ 来回退
在Git中,用HEAD
表示当前版本,也就是最新的提交1094adb...
(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
想恢复到v3 用 git reflog查看你的每一次提交记录,找到commitId,然后会退就行了
注意:这里的回退仅限于本地回退,如果你的代码已经push 到远程仓库了,这时候不能用这种方式,因为这时候本地版本是低于远程版本的,强制提交,会覆盖掉其他同事的代码,而且会有一大堆冲突
(2) git revert 命令恢复
参考 https://blog.csdn.net/yxlshk/article/details/79944535,写的很好