Git reset  

  1. 文件从暂存区回退到工作区 2. 版本回退     

    1.1 git reset HEAD filename :回退文件,将文件从暂存区回退到工作区  //也可以使用 git reset filename

         

    1.2 git reset HEAD^ :回退版本,一个^表示一个版本,可以多个,另外也可以使用 git reset HEAD~n这种形式。       

      如果HEAD指针指向的是master分支,那么HEAD还可以换成master,如果知道特定的commit-id,那么还可以直接使用 git reset commit-id 如果不加参数,实际上使用的是默认的参数mixed,

      我们可以使用git log -3来查看最近三次的提交,形如 git log -n ,n就是想要输出的个数,可以看到commit-id,author,date等信息

        

下面介绍三种参数:

        (1) soft 参数:git reset --soft HEAD~1 意为将版本库软回退1个版本,所谓软回退表示将本地版本库的头指针全部重置到指定版本,且将这次提交之后的所有变更都移动到暂存区

                      

        (2) 默认的mixed参数:git reset HEAD~1 意为将版本库回退1个版本,将本地版本库的头指针全部重置到指定版本,且会重置暂存区,即这次提交之后的所有变更都移动到未暂存阶段

                      

        (3) hard参数:git reset --hard HEAD~1 意为将版本库回退1个版本,但是不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本                                                             

           了解这三个参数已足够我们日常开发使用了, 注意soft参数与默认参数都不会修改工作区代码,只有hard参数才会修改工作区代码。

    1.3 git reset 配合 git commit 追加提交  

      什么时候会用到追加提交,追加提交有什么优点?

      (1) 对未merge的版本库中的提交不满意,希望修改其中的某些信息,如代码,如提交描述等,可以使用git commit --amend进行追加提交,优点是不会产生新的commit-id 

      (2)   修改方法:如果想修改的不是最新一版的提交,那么可以通过git reset --hard HEAD~n将版本回退到需要的那版,如果想修改代码,那么直接在工作区进行代码修改,

      修改完之后git add到暂存区而不必再git pull,而如果是修改其他信息,那么可以直接使用git commit --amend进行追加提交,git commit --amend命令会打开一个编辑器,可以修改其中的信息,

      如果修改了代码而不修改其他信息,则直接 Ctrl + X离开编辑器,再git push推送到远程服务器,如果也修改了其他信息,那么需要先使用Ctrl + M写入信息,再Ctrl + X离开编辑器,再推送。

    1.4 查看帮助

      git reset -h | git reset --help

    1.5 关于作者

      姓名:张坤武

      邮件:1498462303@qq.com

Git reset 常见用法的更多相关文章

  1. Git commit 常见用法

        Git commit git commit 主要是将用户通过git add命令添加到暂存区里的改动给提交到本地的版本库,关于版本库的构成可以查看我先前的笔记. 每次提交我们都会在本地版本库生成 ...

  2. git reset的用法

    git reset三个选项 --mix,--hard,--soft 数据 针对每个选项都是操作这个文件. [root@centos demo]# git init Initialized empty ...

  3. Git push 常见用法

        Git push 在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果不清楚版本库的构成,可以查看我的另一篇,g ...

  4. Git stash 常见用法

    Git stash git stash这个命令可以将当前的工作状态保存到git栈,在需要的时候再恢复 1.1 git stash  保存当前的工作区与暂存区的状态,把当前的工作隐藏起来,等以后需要的时 ...

  5. Git branch 和 Git checkout常见用法

    git branch 和 git checkout经常在一起使用,所以在此将它们合在一起 1.Git branch 一般用于分支的操作,比如创建分支,查看分支等等, 1.1 git branch 不带 ...

  6. Git diff 常见用法

      Git diff 用于比较两次修改的差异 1.1 比较工作区与暂存区 git diff  比较的是单个仓库的工作区与暂存区的差别,repo diff是对git diff的封装,用来分别显示各个项目 ...

  7. Git add 常见用法

        Git add   git add [参数]  [--] <路径> //作用就是将我们需要提交的代码从工作区添加到暂存区,就是告诉git系统,我们要提交哪些文件,之后就可以使用gi ...

  8. Git branch && Git checkout常见用法

    https://www.cnblogs.com/qianqiannian/p/6011404.html git branch 和 git checkout经常在一起使用,所以在此将它们合在一起 1.G ...

  9. Git clone 常见用法

    二 克隆Git仓库     1.1 从远程仓库中克隆整个代码仓库 mkdir Demo //在当前路径下新建一个文件夹,用来存放将要拉取的整个代码库 cd Demo           //进入这个文 ...

随机推荐

  1. BZOJ4117 : [Wf2015]Weather Report

    一种天气情况的概率只与4种天气的出现次数有关,故将相同概率的情况计数后放入堆中模拟哈夫曼树即可. 每次取出概率最小的,将它个数除以2,对于零头需要特判. #include<cstdio> ...

  2. BZOJ4369 : [IOI2015]teams分组

    将分组计划按照$k$从小到大排序,维护一个单调栈,每个元素为一个矩形,按最底下元素从高到低排列,栈顶最低. 每次加入一个矩形可选区域,维护单调栈,可以往回合并. 然后将所有最低点不满足的矩形取出,合并 ...

  3. BZOJ2149 : 拆迁队

    设$c[i]=g[i]+\frac{i(i+1)}{2}-a[i]\times i-a[i]$,$d[i]=a[i]-i$ $f[i]$表示以$i$为结尾最多保留多少个建筑,则 $f[i]=\max( ...

  4. 【BZOJ1426】收集邮票 期望

    [BZOJ1426]收集邮票 Description 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的, ...

  5. flex设置成1和auto有什么区别

    首先明确一点是, flex 是 flex-grow.flex-shrink.flex-basis的缩写.故其取值可以考虑以下情况: flex 的默认值是以上三个属性值的组合.假设以上三个属性同样取默认 ...

  6. POJ 2096 (概率DP)

    题目链接: http://poj.org/problem?id=2096 题目大意:n种bug,s个子系统.每天随机找一个bug,种类随机,来自系统随机.问找齐n种bug,且每个子系统至少有一个bug ...

  7. URAL 1057. Amount of Degrees(数位DP)

    题目链接 我看错题了...都是泪啊,不存在3*4^2这种情况...系数必须为1... #include <cstdio> #include <cstring> #include ...

  8. ffmpeg解码

    解码流程 http://www.cnblogs.com/lidabo/p/4582391.html 例子 http://www.cnblogs.com/lidabo/p/4582393.html

  9. 百度SDK的使用第一天

    //获取自定义的经纬度上添加位置气泡,大头钉 BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init]; CLLocation ...

  10. 九、UINavigationController切换视图 实例

    现版本 SDK 8.4 Xcode 运行Xcode 选择 Create a new Xcode project ->Single View Application 命名 NavigationCo ...