349-git各阶段版本回退命令

1、git各阶段版本回退命令

在这里插入图片描述

123这3个阶段如何进行回退?

在这里插入图片描述
workspace:工作区
index:暂存区
Repository:本地仓库
Remote:远程仓库

在这里插入图片描述


1.1、工作区的代码改动不想要了(git add之前)

在这里插入图片描述

1.2、git add以后放入暂存区的代码修改不想要了

在这里插入图片描述
在这里插入图片描述

1.3、git commit提交到本地仓库的代码不想要了

在这里插入图片描述
看上面的git log,每一次commit提交日志都生成一个commit id,如果修改刚提交的修改想回退,那么通过上面的commit id就可以(commit id不需要写全,前几位能区分不同的commit id就可以),命令如下:
在这里插入图片描述
实际上,上面的git reset --hard commit_id是把本地仓库分支版本上的HEAD指针进行了移动,实际上没有删除任何内容;

如果上面的代码回退你后悔了,可以用git reset --hard继续返回到之前的版本上,
但是之前版本的commit id在哪里看呢?可以用git reflog命令,如下:
在这里插入图片描述
在这里插入图片描述
看到了吧,我又回来啦!

1.4、远程仓库的代码修改不想要了

有两种方法:

  • a、git pull,在本地分支最新的代码版本上删除之前修改的,然后重新push到远程代码仓库上
  • b、在本地分支上通过git reset --hard xxx回退到之前的版本,然后通过git push -f推送覆盖远程代码仓库

在这里插入图片描述

git checkout – 在git add之前,把工作区的代码用版本库中的代码覆盖掉,注意命令中的–不能
去掉,否则成切换分支的命令了
git reset HEAD 把git add之后,暂存区的内容全部撤销
git reset --hard commitid 把提交到本地仓库中的代码改动进行回退
git reflog 查看HEAD指针的改动日志
git push -f 强制推送本地仓库代码到远程仓库
git diff HEAD – 查看工作区file文件和仓库中该文件最新版本的代码有什么区别


2、测试

情况1:工作区修改的代码不要了
在这里插入图片描述
修改代码:
在这里插入图片描述
实际上这里 <= 是错的!

此时如果不想这样写,怎么退回?

git checkout -- main.cpp

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
已经退回了!


情况2:将工作区修改的代码添加到暂存区,发现有错,退回!
在这里插入图片描述
再在代码中随便加入一行代码!

将工作区修改的代码添加到暂存区:

在这里插入图片描述

将暂存区的内容全部舍弃:

在这里插入图片描述
git就退回为工作区的改动:

在这里插入图片描述
后面的操作就和 情况1相同了!


情况3:将错误代码添加到本地仓库了,还未提交到远程仓库!
在这里插入图片描述

可以看到本地仓库有1个新的提交:

在这里插入图片描述
可以看到远程仓库和本地仓库已经不在一个点上了,也可以看到本地仓库最新修改没有提交到远程仓库中!
在这里插入图片描述

每一次修改都会对应一个commit ID。

此时要要进行回退,回退到哪个版本,就用哪个版本的commit的ID号!

git reset --hard 56f46397d5f26607288b39aa03f2c167817790f4

在这里插入图片描述
在这里插入图片描述

打开源文件,可以看到已经回退了!
在这里插入图片描述

当然,我们操作的记录都会记下来的!
在这里插入图片描述
我们再根据commit ID回到未回退之前:
在这里插入图片描述
可以看到我们又回来了!


情况4: 将错误代码直接提交到远程了!
在这里插入图片描述
在这里插入图片描述
怎么回退?

方法1: 重新修改代码,再提交到远程仓库!

方法2:
在这里插入图片描述
在这里插入图片描述

提示本地分支落后于远程分支:
在这里插入图片描述

直接推送是不可以的(只有本地仓库比远程仓库新,才可以直接推送;否则不可以)
在这里插入图片描述
因为如果成功了,你可能将别人的代码弄掉!

但是这里,你知道只有你一个人操作了,因此可以强制操作!

在这里插入图片描述
在这里插入图片描述

这样就可以了,已经回退了!
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liufeng2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值