Git-回退到历史版本

上期提到git的提交,代码提交后,进行合并,然后上线,一系列的过程看起来是那么的和谐。突然在上线后的第二天,发现了P0级别的bug,影响80%的用户使用,这时候leader指示:“马上回退到上个版本!!!“,那这时候怎么操作呢?

首先进行文件的准备:

1、基于a.java文件进行操作。
第一个版本提交

class A {
public static void main(String args []){
System.out.println(“这是第一个版本”);
}
}
修改后进行commit提交。

2、将a.java文件修改一行内容
修改为:

class A {
public static void main(String args []){
System.out.println(“这是第二个版本”);
}
}
修改后进行commit提交。

3、将a.java文件修改同一个行内容
修改为:

class A {
public static void main(String args []){
System.out.println(“这是第三个版本”);
}
}
修改后进行commit提交。

开始进行操作:

4、查看提交日志。
可以看到共提交了4次,前三个版本的提交都进行了展示,最后一次提交,重新将a.java改成System.out.println(“这是第四个版本”)。

在git中,HEAD为头部指针,指向表示当前版本,也就是最新的提交。所以当前版本为第4个版本
在这里插入图片描述

5、此时需要回退到第三个版本。
使用git reset 命令,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

本地代码回滚:git reset -hard HEAD^
在这里插入图片描述

回滚后,将远程服务器的代码也进行回退,强制push到远程服务器,此时远程的代码已回滚。git push -f origin main
在这里插入图片描述

6、回退到具体某个版本:

git reset --hard ff27b4b,执行后,回退针对的是本地分支,如果需要将远程分支也回退版本,则需要进行push,但是push时会报错,提示当前本地分支是远程分支的之前的版本,此时可以强制执行push,加上-f

Yanran Zhao > Git > image2021-1-29_10-42-39.png

Yanran Zhao > Git > image2021-1-22_11-32-40.png

Yanran Zhao > Git > image2021-1-22_11-32-57.png

你回退到了某个版本,想恢复到新版本怎么办?找不到新版本的commit id怎么办?

可以使用git reflog来记录每一次命令

Yanran Zhao > Git > image2021-1-22_11-27-41.png

补充:

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考以上。

以上为git回退到历史版本的操作。多练习,共勉!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值