【Git】撤回push后的代码

相关视频教程:Git reset三种常用模式区别和用法_哔哩哔哩_bilibili

测试准备

 能实现版本回退有很多种方法,本章基于git reset模拟测试,最后会再补充git revert命令

  • 创建一个空仓库
  • 本地克隆
  • 本地创建资源

 

git reset测试

git reset适合用于个人开发项目,或者某个单人维护的分支

HEAD就是最近一次本地commit提交的版本,也叫最新快照

git reset不同的维度有不同的作用

文件维度

将工作区两个文件add到暂存区

突然想撤回暂存区的A.txt

提交维度

将HEAD和当前分支的指向移动到某一次提交

有4中写法:

git reset <commit-id>
git reset <brand-name>
git reset <tag-name>
git reset HEAD~<n>

前三种 我不用,这里只讲最后一种

  • git reset HEAD~<n>

据说这个是最常用的

如图,n为2,则从HEAD开始包括HEAD,最新的2次提交记录会被丢弃,从提交历史中移除

git reset命令有三种模式

无论哪一种模式:对HEAD的改动完全一致,但是对暂存区和工作区的改动有区别

soft模式

注意

HEAD丢弃了最新快照,暂存区和工作区并没有变化,所以可以commit再还原

仔细看,git reset会删除版本记录,所以不要在公共分支使用,公共分支可以换成git revert,下面我会写

mixed模式

与soft模式只有一点区别,就是暂存区也被回退了,而工作区还是不受影响

hard模式(慎用)

这个更牛,工作区也给改了,别用,好吧,千万别用!!1

注意点

git revert命令

公共分支上,还是用这个好,别用git reset,git reset会消除版本记录,版本记录用git --oneline查看

git revert不会消除版本记录,而是会创建一个新的提交,去实现回退功能

  • 衔接上文,先给A,B文件push到远程仓库

  • 查看要回退的版本记录hash值

  • 开始回退

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值