Git恢复之前版本的两种方法reset、revert(图文详解)_git回退到某个版本(2)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

原理: git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,如下图所示,假设我们要回退到版本一:
这里写图片描述
适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。

具体操作:

1. 查看版本号:
可以使用命令“git log”查看:
在这里插入图片描述
也可以在github网站上查看:
这里写图片描述
2. 使用“git reset --hard 目标版本号”命令将版本回退:
这里写图片描述
再用“git log”查看版本信息,此时本地的HEAD已经指向之前的版本:
在这里插入图片描述
3. 使用“git push -f”提交更改:
此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧:
这里写图片描述
所以我们要用“git push -f”强制推上去,就可以了:
这里写图片描述
在github图形化界面上看,远程库的HEAD也已经指向目标版本:
这里写图片描述

回退成功!
方法二:git revert

原理: git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。如下图所示:
这里写图片描述
适用场景: 如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。

具体操作:

举个例子,现在库里面有三个文件:READ.md、text.txt、text2.txt。
在这里插入图片描述
1. 查看版本号:
可以通过命令行查看(输入git log):
如图,最近的两个版本分别叫:“add text.txt”(即新增了文件text.txt)、“add text2.txt”(新增了文件text2.txt)。这个时候我们不需要text.txt这个文件了,那就是说不想要“add text.txt”那个版本的操作,那可以通过反做“add text.txt”这个版本来实现。
在这里插入图片描述
也可以通过github网站图形化界面查看版本号:
在这里插入图片描述
2.使用“git revert -n 版本号”反做,并使用“git commit -m 版本名”提交:
(1)反做,使用“git revert -n 版本号”命令。如下命令,我们反做版本号为8b89621的版本:

git revert -n 8b89621019c9adc6fc4d242cd41daeb13aeb9861

注意: 这里可能会出现冲突,那么需要手动修改冲突的文件。而且要git add 文件名。
(2)提交,使用“git commit -m 版本名”,如:

git commit -m "revert add text.txt" 

此时可以用“git log”查看本地的版本信息,可见多生成了一个新的版本,该版本反做了“add text.txt”版本,但是保留了“add text2.txt”版本:
在这里插入图片描述
3.使用“git push”推上远程库:

git push

查看github上显示的远程库版本信息:
在这里插入图片描述
此时查看仓库的文件,剩下两个:READ.md、text2.txt

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

如果你需要这些资料,可以戳这里获取

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Git回退到某个特定版本,可以使用以下命令: git reset --hard 目标版本号 其中,目标版本号是你要回退到的版本的唯一标识,可以是提交的SHA值或者分支名。比如,如果你想回退到提交号为9feb83df6db8b132004325ab03377b2088cba540的版本,可以使用以下命令: git reset --hard 9feb83df6db8b132004325ab03377b2088cba540 这个命令会将HEAD指向目标版本,同时丢弃掉目标版本之后的所有提交。请注意,这个操作是不可逆的,所以请确保你真的想回退到该版本。 另外,还有一种回退方法是使用git revert命令,它会生成一个新的提交来撤销指定版本的更改,这样可以保留之后的提交。如果你只想撤销某个版本的更改而不丢弃之后的提交,可以使用git revert命令。具体操作步骤如下: 1. 使用git log命令或者git reflog命令查找目标版本的提交号。 2. 运行git revert -n 目标版本号命令来撤销目标版本的更改。这个命令会生成一个新的提交,包含了撤销指定提交的更改,但是不会自动提交。 3. 如果在撤销过程中遇到冲突,需要手动解决冲突并使用git add命令将解决后的文件添加到暂存区。 4. 使用git commit -m 版本名命令提交撤销的更改。 5. 最后,使用git push命令将提交推送到远程仓库。 这样,你就成功将Git回退到某个特定版本了。请根据你的需求选择合适的回退方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值