Git 误操作恢复
恢复误删除的分支
查询git操作的记录
git log -g
或者
git reflog
找到删除的分支最后的提交
创建一个新分支,以指定的提交id为基础
git branch readdgoods 21a9010086dd41c588237030877d178a878e69de
查看当前的分支,可以看到,误删除的分支已经回来了
恢复错误的版本回退
使用 reset
进行了版本回退操作,如果是错误的回退操作,我们还是有办法恢复的
第一个办法就是和 恢复误删除的分支
的操作一样,查看所有日志,并以提交的commitID
来创建新的分支,再把新的分支合并到我们当前的分支,这个操作有点麻烦.
方式二
查看回退操作的commitID:
git log -g
或者
git reflog
这个操作会显示你最近操作的commitID,之后我们找到要恢复的ID再进行恢复:
git reset --hard 21a9010086dd41c588237030877d178a878e69de (commitID)
恢复错误提交到线上版本库的操作
如果我们提交到线上版本库的版本是一个错误的版本,想要恢复的话再使用前面的方式,就会出现这个结果:
-
你本地恢复到之前正确的版本
-
你
push
到线上版本库,会报错: 你的本地版本比线上版本落后,请先pull
这个时候你就该苦恼了,我如何把线下的版本回退到指定的版本呢?
这个时候我们有必要使用 git revert
这个命令了,这个命令会恢复到某一个版本,并生成一个提交,
这样,你本地的版本还是比线上的版本高的,而且本地的版本还进行回退,这个时候再往线上的版本库
push
就可以成功把线上的版本回退某一个指定的版本
git revert (commitID)
注意
revert
这个操作不同于reset
,reset
是回退到某个版本,而revert
是撤销某次操作
git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留
git reset 是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区
CREATE AT LUWNTO
“这个时候你就该苦恼了,我如何把线(下)
上
的版本回退到指定的版本呢?” 手滑了吧?:laughing:但是关闭了窗口的话,git relog 有些版本号就查不到了