zoukankan      html  css  js  c++  java
  • Git实战指南----跟着haibiscuit学Git(第十一篇)

    笔名:  haibiscuit

    博客园: https://www.cnblogs.com/haibiscuit/

    Git地址: https://github.com/haibiscuit?tab=repositories  (欢迎star)

    本项目地址: https://github.com/haibiscuit/StudyBook

    尊重笔者的劳动成果,未经允许请不要转载

     

    :版本回退

    (1) 场景一  撤销工作区文件的修改(即没有git add到暂存区)

    方法一:

    git checkout -- filename

    方法二:

    git restore filename

    (2) 场景二  撤销暂存区的修改(即你想清空暂存区内容,但对工作区新的修改不造成影响,即只删除暂存区)

    方法一:

    git restore --staged filename

    方法二:

    git reset HEAD -- filename

    (3) 场景三 暂存区或本地仓库覆盖工作区(即你已经执行git add或commit操作,又对工作区文件修改,但想撤回或放弃对工作区的修改)

    方法一:

    git checkout -- filename

    //等价于git checkout filename

    方法二:

    git restore filename

    (注:以上的两种方式会覆盖工作区文件,但不会删除暂存区的内容)

     

     

    (4) 场景四  版本回退

    方式一

    git reset

    git reset --hard HEAD     //本地仓库的当前版本覆盖工作区修改

    git reset --hard HEAD^   //本地仓库回退到上一个版本

    git reset --hard HEAD~2    //本地仓库回退到上两个版本

    git reset --hard HEAD~n    //本地仓库回退到上n个版本

    (注:

    使用git reset会删除回退指定版本之后的所有版本)

    如果想时光倒流,即回到被删除的版本怎么办:

    git reflog     //找到想回到的版本

    git reset --hard <commit_id>  //回退到被删除的版本

        

    方式二

    git revert    //回退到指定版本之前一个的版本,不是会退到指定版本

    git revert HEAD     //回退到上一个版本

    git revert HEAD^   //回退到上两个版本

    git revert HEAD~n   //回退到上(n+1)个版本

     

    最后推荐使用git revert方式,并不是像网上说git reset不能用,而是通过git revert重做的方式并不会丢弃重做的版本,更为方便.

  • 相关阅读:
    SpringMVC,3种不同的URL路由配置方法(这根本不是一个小问题)
    PHP在Windows下安装配置第一步
    跟我一起学extjs5(18--模块的新增、改动、删除操作)
    html image -- data:image/png;base64
    oc66--代理模式应用2
    oc65--协议应用1,接口.做数据类型限定
    oc64--协议2@protocol
    oc63--协议@protocol1
    oc62--block1
    oc61--block
  • 原文地址:https://www.cnblogs.com/haibiscuit/p/11986456.html
Copyright © 2011-2022 走看看