git-reset

作者: 小胖_20c7 | 来源:发表于2019-04-23 17:27 被阅读0次
    用法一
    git reset <mode> commit
        1 更新refs/head/<name>的值为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

          本文链接:https://www.haomeiwen.com/subject/ewzvgqtx.html