git reset 命令

来源:互联网 发布:卷积矩阵及其运算实例 编辑:程序博客网 时间:2024/04/29 11:26
一、git reset [-q]  [<commit>] [--] <paths> ...
二、git reset [--soft | --mixed | --hard | --merge | --keep] [-q] [<commit>]

<commit>是可选项,可以使用引用或提交ID,如果省略<commit>相当于使用了HEAD的指向作为提交ID。
两种用法区别在于,第一种包含路径<paths>。为了避免路径和引用(或者提交ID)同名而发生冲突,可以在<paths>前用两个连续的短线(--)作为分隔。

第一种
     不会重置引用,更不会改变工作区,而是指定提交状态(<commit>)下的文件(<paths>)替换掉暂存区中的文件。例如git reset HEAD <paths> 相当于取消之前执行的git add <paths>相当于取消之前执行的 git add <paths> 命令时改变的暂存区。

第二种
     会重置引用,根据不同的选项,可以对暂存区或工作区进行重置。

     使用参数 --hard 如:git reset --hard <commit> 会执行:
               1.替换引用的指向
                     2.替换暂存区。替换后,暂存区的内容和引用指向的目录树一致
               3.替换工作区。替换后,工作区的内容变得和暂存区一致,也和HEAD所指向的目录树内容相同。

     使用参数--soft,如:git reset --soft <commit>会执行: 1.替换引用的指向

     使用参数--mixed或不使用参数,如:git reset <commit>会执行:1 2,即更改应用的指向及重置暂存区。但是不改变工作区。


示例:
     解释待补充。。。
           git reset 
            git reset HEAD
git reset --filename
git reset HEAD filename
git reset --soft HEAD ^
git reset HEAD^
git reset --mixed HEAD^
git reset --hard HEAD^
          

























0 0
原创粉丝点击