美文网首页
git reset 详解

git reset 详解

作者: working_Poor | 来源:发表于2020-01-14 14:32 被阅读0次

    例如我们有一次commit不是不是很满意,需要回到上一次的Commit里面。那么这个时候就需要通过reset,把HEAD指针指向上一次的commit的点。
    它有三种模式,soft,mixed,hard,具体的使用方法下面这张图,展示的很全面了。


    Snipaste_2020-01-14_14-22-28.png

    reset --hard:重置stage区和工作目录:
    reset --hard 会在重置 HEAD 和branch的同时,重置stage区和工作目录里的内容。当你在 reset 后面加了 --hard 参数时,你的stage区和工作目录里的内容会被完全重置为和HEAD的新位置相同的内容。换句话说,就是你的没有commit的修改会被全部擦掉。
    简单的看,--hard就是完全替换为reset的版本信息,你工作区和暂存区也全部同步为reset版本相同的内容

    reset --soft:保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区。reset --soft 会在重置 HEAD 和 branch 时,保留工作目录和暂存区中的内容,并把重置 HEAD 所带来的新的差异放进暂存区。
    简单来看,也就是说--soft命令是撤销指定版本内容的那一次commit(并放进stage/暂存区),其他的东西都不改变。

    reset 不加参数(--mixed):保留工作目录,并清空暂存区
    reset 如果不加参数,那么默认使用 --mixed 参数。它的行为是:保留工作目录,并且清空暂存区。也就是说,工作目录的修改、暂存区的内容以及由 reset 所导致的新的文件差异,都会被放进工作目录。简而言之,就是「把所有差异都混合(mixed)放在工作目录中」。工作目录的内容和 --soft 一样会被保留,但和 --soft 的区别在于,它会把暂存区清空,并把原节点和reset节点的差异的文件放在工作目录,总而言之就是,工作目录的修改、暂存区的内容以及由 reset 所导致的新的文件差异,都会被放进工作目录

    简单的看,也就是说--mixed命令是撤销指定版本内容的那一次commit(并放进work/工作区),暂存区的修改也会清空,同时放到工作区。

    本文转载自Git Reset 三种模式

    相关文章

      网友评论

          本文标题:git reset 详解

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