• Git版本回退


    版本回退

    当我们在网上下载一个项目下来之后,但是下来下来的项目都是已经完成项目所有功能的,但是你又想从项目刚开始做时看一遍每次push之前完成代码,怎么办呢?碰巧Git提供了一个叫做版本回退的方法,具体怎么实现,请看下面。

    项目下载完成后我们通过git log或者git reflog查看到了项目所有的提交记录,按Q是退出

    从上图可以看出这个项目提交过很多次push,并且最后一次文件更新修改的commit是LICENSE(因为增加(或者修改)了名为这个LICENSE文件,所以我commit 就写LICENSE),那么你如果想将项目所有文件回退到git push之前某个时间提交的文件更新怎么实现呢?

    比如我想回退至push提交名为finished的版本文件,那我应该执行下面

    git  reset --hard  0fd008cff76f63df2f3d9318be3cff734b7602d9    // 升级功能效果立即改变

    git  reset  0fd008cff76f63df2f3d9318be3cff734b7602d9    // 升级功能效果不会改变,可以通过vs code代码工具查看到升级功能中修改增加了哪些代码

    从上图中我们可以看出版本回退成功了,再次打开项目文件夹一看,发现之前的LICENSE这个文件和部分功能文件不见了,因为现在是回退到项目之前提交版本实现的文件。

    git reset --hard HEAD^  //在当前版本回退到上一个版本,上上一个版本就是 HEAD^^

    撤销commit

    一般情况下写完代码后,我们一般这样

    git add . 

    git commit -m "本功能全部完成"

    执行完commit后,你又发现自己commit错了,想撤回commit,怎么办?

    git reset --soft HEAD^

    这样就成功的撤销了你的刚才commit

    注意,仅仅是撤回commit操作(你的git add . 仍然在),您写的代码仍然保留。

    至于这几个参数:
    --mixed
    意思是:不删除工作空间改动代码,撤销commit,并且撤销 git add . 操作
    这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。

    --soft
    不删除工作空间改动代码,撤销commit,不撤销git add .

    --hard
    删除工作空间改动代码,撤销commit,撤销git add .

    注意完成这个操作后,所有文件都恢复到了上一次的commit状态。

    顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
    git commit --amend

    此时会进入默认vim编辑器,修改注释完毕后保存就好了。

  • 相关阅读:
    Homestead 安装其它的PHP版本
    Angular调用父Scope的函数
    检测到在集成的托管管道模式下不适用的ASP.NET设置
    IE8不能保存cookie,造成response.redirect死循环的原因
    IE浏览器“自定义安全级别”不能设置的原因
    测试sql server服务是否配置正确
    Sql Server Express 2005提示"failed to generate a user instance of sql server "
    cordova使用Gradle构建下载maven太慢,使用阿里云镜像
    使用Cordova编译Android平台程序提示:Could not reserve enough space for 2097152KB object heap
    Angular动态编译Html
  • 原文地址:https://www.cnblogs.com/jing-tian/p/11317388.html
Copyright © 2020-2023  润新知