Git 撤回的用法

Introduce

在github中我们遇到的一个很常见的需求是:如何将当前的代码回退到之前的一个版本,或者在回退到之前的版本后,如何再回到当前版本。假设一个实际场景,假设我们的版本链是v1,v2,v3,v4,而我们当前工作目录的版本是v4,我们想回退到v2,当回退到v2后,我们发现我回退错了,想再次回退到v4,那么这一系列的操作如何实现呢?下面以此需求展开github的撤销的用法

git reset

  1. 首先介绍一下git reset 的用法
git reset [-q] [<tree-ish>] [--] <paths>…​
git reset (--patch | -p) [<tree-ish>] [--] [<paths>…​]
EXPERIMENTAL: git reset [-q] [--stdin [-z]] [<tree-ish>]
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]

每个项的具体定义可以见git reset --help弹出的说明文档。这里重点阐述git reset的soft和hard,简单理解soft只将回退动作指定到暂存区(i.e.,不改变索引区和工作目录的内容),而hard将动作指定到暂存区、索引区、工作目录,这个操作将直接覆盖工作目录的代码(属于危险操作,但是也不是不可恢复(i.e.,撤销),但是若工作目录有未提交的代码,覆盖将是不可恢复的,因为git没做记录)。

  1. 使用git reset撤销

首先使用git reflog查看整个版本链,然后使用git reset --soft实现暂存区跳转(i.e.,暂时还不想改变工作区的代码或者工作区有代码未提交),使用git reset --hard实现工作区代码跳转(切换到其它版本上开发),仔细观察下图即可知道此处思想。
image

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值