git-reset

用法一
git reset  commit
    1 更新refs/head/的值为commit
    2 更新index区域
    3 更新work区域
mode的解释
--soft       (只重置头)
--mixed      (更新index区域)
--hard       (更新index区域和work区域)
--merge:
              1 更新index区域
              2 对于两个commit中,内容不等的文件:只有work区变化的文件会报错
              3 对于两个commit中,内容相等的文件:只有work区变化的文件会保留
--keep
              1 更新index区域
              2 对于两个commit中,内容不等的文件:work区,index区变化的文件都会保留
              3 对于两个commit中,内容相等的文件:work区,index区变化的文件都会保留
说明
merge和keep,是为了这样一种场合准备的,即
    我重置的时候,想保留一些本地文件在work区,而其它的reset --hard
哪些文件保留呢?
    前后两个commit,都没有修改的这些文件可以保留
如何保留呢?
    对于只有work区变换的保留(即--merge)
    对于工作区和index区变换的保留(即--keep)
总结
    对于两个版本一致的文件
    merge,只保留了work tree里面的修改(两个commit文件不一致的文件,做了work tree修改是不允许的)
keep,即保留了work tree里面的修改,也保留了index里面的修改(两个commit文件不一致的文件,做了work tree或者index修改都是不允许的)

你可能感兴趣的:(git-reset)