git 版本回退

已提交,没有push的情况,回滚

本地commit了一次,我想把它回滚,怎么做?

git status 查看本地有一个commit
在这里插入图片描述

git log获取commit版本号(q退出)
在这里插入图片描述
也可以使用这种方式获取需要回滚的版本号
在这里插入图片描述
回滚:

git reset --soft 撤销commit,但不会撤销add
git reset --mixed 撤销commit,也撤销add
git reset --soft 5a8978722ca3bc8d2225ccae7a1cce976b4cfccc

在这里插入图片描述
git status上也显示,无commit
在这里插入图片描述

已提交,并且push的情况,回滚

方式一: git reset

git reset --hard 撤销并舍弃指定的版本号之后的提交记录。使用需要谨慎。
注意:是版本号之后的所有提交记录,谨慎用!

例:test02已经push,我想回退到test01
在这里插入图片描述

PS D:\project\parent> git reset --hard fedadc2efcf639da22631c60ae706b8fad389ea1
HEAD is now at fedadc2 test01

然后需要push到远程分支,但是直接git push, 是会报错的,因为本地版本落后于远程,需要强制push
在这里插入图片描述
强制push(git push -f),然后查看本地和远程分支,test03都没了,版本回退到test02
在这里插入图片描述
这种强制提交,如果使用的是gitlab, 权限不是maintainer, 提交也会失败,需要找管理员提交。
注意:这种方式会把提交的代码直接舍弃,非常不建议使用!

idea上的快捷操作方式
在这里插入图片描述
在这里插入图片描述
然后再强制push

方式二: git revert

git revert 撤销。但是保留了提交记录。并且他是移除指定的提交。

获取需要回退的版本号,注意这里和上面的不一样,上面的是回退到之前的某一个版本,现在是撤销当前的版本
在这里插入图片描述
git revert 366f8c73e74ad43f892b30eefd0f1b9de1177e20,键盘i,进入编辑状态,改一下提交的名称,键盘Esc,冒号wq,回车,就ok了
在这里插入图片描述
在这里插入图片描述
然后再git push到远程分支,即可。
这种方式可以只回退某一个版本,并且回退之后,还会保留之前版本的记录。推荐

或者使用idea的快捷方式:
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值