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

  • 相关阅读:
    事务及存储过程
    索引细讲
    数据库练习题
    position: absolute 或 display:table 的水平垂直居中
    bootstrap table 文字超出父div范围
    css 图片不定大小不压缩、不变形的对齐
    vue3.0 + svg 图标
    vue eslint(indent) 空格缩进报错
    vue3.0 + fontAwesome 图标
    vue3.0 + ts + element-plus + i18n 中英文切换
  • 原文地址:https://www.cnblogs.com/gne-hwz/p/10397266.html
Copyright © 2011-2022 走看看