美文网首页
git reset 命令用于回退版本的使用

git reset 命令用于回退版本的使用

作者: 小ocean | 来源:发表于2021-05-06 17:16 被阅读0次

    git reset 有三种模式:git reset [--soft | --mixed | --hard] [HEAD]

    参考:https://www.runoob.com/git/git-reset.html

    --mixed

    • --mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
      1、 git reset c27948b75a54651bd57058c417a53d4216ea5389 等价于git reset mixed c27948b75a54651bd57058c417a53d4216ea5389
      2、git reset HEAD^ # 回退所有内容到上一个版本
      3、git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本
      4、git reset 052e # 回退到指定版本
      5、实体需求操作:需要回退到箭头指向的这个版本 head:c27948b75a54651bd57058c417a53d4216ea5389
      image.png
    1、git reset c27948b75a54651bd57058c417a53d4216ea5389   暂存区回退,工作区文件内容保持不变
    2、git checkout .   确认工作区文件是否需要,不需要使用checkout .
    3、git push --force  git要强制覆盖,那么可以使用--force命令。
    4、git  status    如果有添加的文件可能需要手动删除 (C#代码已经忽略掉的)
    
    

    --soft

    • --soft 参数用于回退到某个版本:
      1、git reset --soft HEAD

    --hard

    • --hard参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:
      换句话说,就是你的没有commit的修改会被全部擦掉。
      reset --hard 不仅可以撤销提交,还可以用来把 HEAD 和 branch 移动到其他的任何地方。参考:https://www.jianshu.com/p/c2ec5f06cf1a
      git reset --hard HEAD
      git reset –hard HEAD~3 # 回退上上上一个版本
      git reset –hard bae128 # 回退到某个版本回退点之前的所有信息。
      git reset --hard origin/master # 将本地的状态回退到和远程的一样
      注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。

    总结:

    --hard:重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区。

    --soft:重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入index暂存区中(Staged files)。所以效果看起来就是工作目录的内容不变,暂存区原有的内容也不变,只是原节点和Reset节点之间的所有差异都会放到暂存区中。

    --mixed(默认):重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区 和 Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的【差异变更集】会放入Working Tree工作目录中。所以效果看起来就是原节点和Reset节点之间的所有差异都会放到工作目录中。

    相关文章

      网友评论

          本文标题:git reset 命令用于回退版本的使用

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