zoukankan      html  css  js  c++  java
  • 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编辑器,修改注释完毕后保存就好了。

  • 相关阅读:
    LINQ学习(1)
    [转]键盘上的标点符号的中英文名称对照表
    微信Android ANR原理解析及解决方案
    IOS错误日志抓取和分析
    蚂蚁金服测开面试题--转账功能
    MySQL CONV()函数
    分页功能
    在alert里面加入一个页面,子页面传值父页面
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; che
    缘起 网络编程
  • 原文地址:https://www.cnblogs.com/jing-tian/p/11317388.html
Copyright © 2011-2022 走看看