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)

恢复错误提交到线上版本库的操作

如果我们提交到线上版本库的版本是一个错误的版本,想要恢复的话再使用前面的方式,就会出现这个结果:

  1. 你本地恢复到之前正确的版本

  2. push 到线上版本库,会报错: 你的本地版本比线上版本落后,请先 pull

这个时候你就该苦恼了,我如何把线下的版本回退到指定的版本呢?

这个时候我们有必要使用 git revert 这个命令了,这个命令会恢复到某一个版本,并生成一个提交,

这样,你本地的版本还是比线上的版本高的,而且本地的版本还进行回退,这个时候再往线上的版本库

push 就可以成功把线上的版本回退某一个指定的版本

git revert (commitID)

注意 revert 这个操作不同于 reset, reset是回退到某个版本,而 revert是撤销某次操作
git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留
git reset 是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区


CREATE AT LUWNTO

不乱于心,不困于情,不畏将来,不念过往,如此,安好
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

“这个时候你就该苦恼了,我如何把线(下)的版本回退到指定的版本呢?” 手滑了吧?:laughing:

6年前 评论

但是关闭了窗口的话,git relog 有些版本号就查不到了

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!