• Git使用五:回到过去


    reset:将仓库里面的内容恢复回暂存区,类似于从仓库里检出文件到暂存区
    checkout:将暂存区的文件恢复回工作区,即,把暂存区的文件检出到工作区

    下面是之前三次提交的内容

     三个区域的文件状态:

    执行命令:git reset HEAD~

    这里~代表上一个版本,这个时候,就会回到第二次提交的状态,而仓库和暂存区的文件也会发生变化

    ~~代表上上个版本,以此类推,也可以这样表示~10(往回退10个版本)

    这个时候,git检测到工作区的文件比暂存区的文件内容更新,所以会报没有被暂存的提示

     

    再次执行git log,只显示前面两个提交记录了

    reset命令的选项

    git reset --mixed HEAD~(默认)
    移动HEAD的指向,将其指向上一个快照
    将HEAD移动后指向的快照回滚到暂存区域

    git reset --soft HEAD~
    移动HEAD的指向,将其指向上一个快照,不会修改暂存区的内容(撤销上一次的提交)

    git reset --hard HEAD~
    移动HEAD的指向,将其指向上一个快照
    将HEAD移动后指向的快照回滚到暂存区域
    将回滚后暂存区的文件还原到工作目录

    执行hard命令前

    执行后

    更新历史也只剩一个了

    文件状态

    总结:
    1.移动 HEAD 的指向(--soft)
    2.将快照回滚到暂存区域([--mixed],默认)
    3.将暂存区域还原到工作目录(--hard)
    4.回滚到指定快照:git reset bfde835f7c9ef846

     

    5.回滚个别文件(不会改变head指针):git reset 版本快照 文件名/路径
    6.reset不仅可以回滚,还可以往前滚:git reset 版本快照的ID号

     

  • 相关阅读:
    SpringBoot入门篇--读取资源文件配置
    SpringBoot入门篇--使用Thymeleaf模板引擎进行页面的渲染
    SpringBoot入门篇--热部署
    NOI2017 游记
    BZOJ 2754 【SCOI2012】 喵星球上的点名
    codeforces 741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
    BZOJ 4407 于神之怒加强版
    BZOJ 2956 模积和
    BZOJ 4584 【APIO2016】 赛艇
    BZOJ 4591 【SHOI2015】 超能粒子炮·改
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/10703714.html
Copyright © 2020-2023  润新知