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重做的方式并不会丢弃重做的版本,更为方便.

  • 相关阅读:
    可伸缩性/可扩展性(Scalable/scalability)
    广播变量与累加器
    swool配置ssl
    使用smb映射到本地时 访问权限,请联系管理员错误
    npm 安装cnpm淘宝镜像时报错解决
    在使用mysql8.0的时候遇到的密码链接问题
    配置ubuntu的超管账号密码
    nginx 配置laravel框架域名配置
    eclipse 下载安装单元测试log4j的配置与搭建
    eclipse安装Spring的具体步骤
  • 原文地址:https://www.cnblogs.com/haibiscuit/p/11986456.html
Copyright © 2011-2022 走看看