zoukankan      html  css  js  c++  java
  • git reset命令使用

    版本回退

    当前有三个commit提交版本
    commit1
    commit2
    commit3
    Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本
    上一个版本是HEAD^,上上一个版本是HEAD^^
    当前版本是在commit3
    要回退到commit1或2,使用git reset命令

    回退到上一版本commit2
    git reset --hard HEAD^

    如果还想返回到commit3。需要知道commit3的commit id 1094adb...
    git reset --hard 1094
    版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号

    git reset三种方式
    git reset(--mixed) HEAD~1
    回退一个版本,会将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,
    暂存区就是git add临时提交到的地方。
    未暂存的状态就是将这些文件标记位待提交

    git reset --soft HEAD~1
    回退一个版本,不清空暂存区,将已提交的内容恢复到暂存区,不影响原来本地的文件(未提交的也不受影响)
    这些文件还在暂存区中

    git reset --hard HEAD~1
    回退一个版本,清空暂存区,将已提交的内容的版本恢复到本地,本地的文件也将被恢复的版本替换

    这个hard会将回退到该版本之后提交的内容都删除或替换掉。。也就是回退到该版本后,项目不包含该版本后面修改的任何内容。
    比如一个项目test文件夹中
    第一次提交test1.txt
    第二次提交test2.txt
    第三次提交test3.txt

    现在项目test文件夹中有三个文件
    test1.txt,test2.txt,test3.txt
    如果我们使用hard模式回退到第一次提交
    git reset --hard HEAD~2
    执行后,test文件夹中现在就只有test1.txt文件

    如果我们使用mixed模式
    git reset --mixed HEAD~2
    test文件夹中还有这三个文件夹,
    只不过test2.txt和test3.txt文件没有打勾
    会将之前提交的版本文件全部恢复到未暂存状态

    如果我们使用soft模式
    git reset --soft HEAD~2
    test文件夹中还有这三个文件夹
    只不过test2.txt和test3.txt文件前面是+标记,表示已经git add 到暂存区中

  • 相关阅读:
    (转) Hibernate检索方式概述
    (转) Hibernate注解开发
    (转)Hibernate关联映射——一对多(多对一)
    (转)学习淘淘商城第二十二课(KindEditor富文本编辑器的使用)
    (转)Hibernate关联映射——对象的三种关系
    (转)Hibernate的一级缓存
    (转) Hibernate持久化类与主键生成策略
    ( 转)Hibernate常用API
    (转)Hibernate的配置详解
    范仁义css3课程---22、float导致的父容器高度坍塌及解决
  • 原文地址:https://www.cnblogs.com/gne-hwz/p/10397266.html
Copyright © 2011-2022 走看看