Git学习之回退撤销


Git学习之回退撤销操作


Git是一个版本控制工具,所以灵活的回退或者撤销操作是必不可少的, 这里你将学到几个将操作撤销,或者将文件回滚的操作。但是注意,有一些操作时时不能撤销。下面我们先认识下总体的操作示意图:
back
由上图我们可以知道,总体的操作汇总:

  • git add命令用于把工作目录的文件放入暂存区域
  • git commit 命令用于把暂存区域的文件提交到 Git 仓库
  • git reset 命令用于把 Git 仓库的文件还原到暂存区域
  • git checkout命令用于把暂存区域的文件还原到工作目录


这里我们学习的重点时resetcheckout命令

1.首先是reset命令

reset命令有三个选项,语法:git reset <选项> HEAD/快照ID<~>,其中<快照ID/HEAD> 默认是HEAD,~表示回退的版本数,也可以表达~N,

  • --soft
  • --mixd默认,不加选项就是mixd
  • --hard

    手册里是这样描述的:
    在这里插入图片描述
  1. 如果你是使用--soft选项,仅仅是改变HEAD指针的指向,实际上是撤销上一次commit,暂存区和工作区都没有改变
    soft
  2. 如果你是使用默认选项,那么HEAD指针会指向上一个快照,然后将这个上个快照复制到暂存区,暂存区的内容会被覆盖,工作区不会改变。
    在这里插入图片描述
  3. 如果你使用–hard选项,那么这个操作会改变HEAD指针指向上一个快照,同时将上一个快照的内容复制到暂存区和工作区,暂存区和工作区原先的内容会被覆盖,这带有一点的危险性,因为覆盖的工作区文件不可撤销。
    hard
初次之外reset还有以下功能:
  • 回滚到指定的快照 只需要将HEAD换成你想回退的快照ID,语法:git reset 指定的快照ID
  • 回滚某个文件,这个操作并不会改变HEAD的指向,因为你只是回滚快照的一部分内容,语法:git reset 快照 文件名/路径
  • 还可以向前滚,直选将快照换成你想滚到的快照,语法:git reset 快照
如果操作失误,错误的使用git reset --hard回滚,使得工作目录改变了,可以使用git reflog,看到相应的快照,可以回滚回去。


2. 其次是checkout命令

这个命令有两个功能:一个是撤消对文件的修改;一个是切换分支,分支后面会说到,这里我们先了解它的撤消对文件的修改

它实际上将暂存区的文件内容覆盖到工作目录下
在这里插入图片描述
我们用diff命令查看下差别:
2
我们用checkout从暂存区回滚到工作区:
在这里插入图片描述
可以看到已经回退到暂存区保存的状态

参考于小甲鱼博客和Git手册,用于学习的目的,水平有限,有错误的地方可以联系邮箱:breeziness123@Outlool.com
一缕清风
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

坂田民工

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

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

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

打赏作者

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

抵扣说明:

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

余额充值