• 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 到暂存区中

  • 相关阅读:
    UVA11082 矩阵展开,最大流
    UVA11082 矩阵展开,最大流
    hdu5855二分+最大流
    hdu5855二分+最大流
    高斯消元 hdu5833,hdu3364,hihocoder1195
    高斯消元 hdu5833,hdu3364,hihocoder1195
    傅里叶分析之掐死教程
    傅里叶分析之掐死教程
    php字符串大小写转换
    php strip_tags() 函数去除 HTML、XML 以及 PHP 的标签。
  • 原文地址:https://www.cnblogs.com/gne-hwz/p/10397266.html
Copyright © 2020-2023  润新知