git-reset 版本回退

参考:

图解 Git 的 reset 命令

三、怎么用

要想用好 reset 命令,必须深入理解它的三个参数—

–soft,–mixed(默认),–hard

看图说话。

1、–soft 参数

git reset --soft

img

如上图,soft 参数是指将本地仓回滚到 Y 版本,但是暂存区和工作区保持不变。此时本地仓回滚到 Y 版本号 commit 完成的那一刻。

2、–mixed 参数

git reset --mixed  或者  git reset

img

这是默认参数。表示本地仓和暂存区,都回滚到 Y 版本号。工作区代码不受影响。

3、–hard 参数

img

本地仓、暂存区、工作区,三区都回滚。

切记!!!工作区有未提交的代码时不要用这个命令,因为工作区会回滚,你没有提交的代码就再也找不回了。

此时如何安全回滚,请参考我的上一篇文章的 git stash 命令。

[思来享趣:理解 Git 的这两件事情,就可以在 Git 里为所欲为 zhuanlan.zhihu.com[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BNZXaJHh-1624589275273)(https://zhuanlan.zhihu.com/p/346723062)]

四、使用场景

具体使用的时候,要分清的就是用哪个参数最合适,下面举几个例子。再次提醒,工作区有未提交的改动时,不要用–hard 参数。

1、如何撤销一次 push?

此时用–soft 参数比较合适,只回滚本地仓到上一个版本,然后通过 git push -f 命令,撤销上次的 push,最后更改好代码后重新 push。步骤如下—

依次为

git reset --soft HEAD~1  // 将本地仓回滚到上一个版本号
git push origin master -f  // 通过-f命令,将回滚后的版本号强制推送上去,相当于撤销了最新的push
// 修改代码
// 修改好后,重新add,commit,push即可。

2、如何撤销一次 commit?

如果你要同时撤销暂存区的话,就用–mixed 参数,如果要撤销工作区的修改就用–hard 参数,否则用–soft 最安全。

git reset --hard HEAD~1  // 慎用--hard参数,除非你知道你自己在做什么

五、组合拳

聪明的你,一定想到了,想要利用好 git 强大的版本控制功能,要学会使用组合拳,如以下命令—

git stash  // 暂存代码
git reset --参数 版本号
git push --force

等等

这就需要你多多练习了,不过好在 git 足够强大,只要你稍微注意一点,不会出现找不回代码的情况,因此可以放心大胆地随意尝试。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值