当前位置:   article > 正文

git --- 回滚 restore, reset, revert_git restore和git revert

git restore和git revert

git revert

  • git revert 是用于“反做”某一个版本,以达到撤销该版本的修改的目的
  • 也就是git revert会生成一个新的commit, 而这个commit需要回滚的版本的内容是一样的
  • 如下, 比如版本三的commit有问题, 需要进行版本回退, 则执行 git revert 版本二 这个命令, git会生成版本四, 而版本四的内容和版本二是一样的
    在这里插入图片描述

Example

  • 目前有一个greeting.txt文件, git 记录如图
    在这里插入图片描述
  • 使用revert 恢复到最近一个commit之前的样子(commit 0343dc3)
    在这里插入图片描述
  • 查看git 记录以及greeting.txt的内容
    在这里插入图片描述
  • 注意: 如果要恢复到几个版本以前的状态, 尽量一个一个恢复, 避免冲突
  • 比如要恢复到 fbc9245 之前的状态, 则先revert 020cf2e --> revert 0343dc3 --> reevrt 2d73d74 ----> revert fbc9245

git restore

  • git restore有两种用法
  • 如果文件在工作区, 还没有被add进缓存区, 则git restore会直接丢弃目前工作区的更改
  • 如果文件在缓存区, 则需要使用 git restore --staged 将文件从缓存区移动回工作区

Example

git restore -- staged
  • 1
  • 现在有一个更改, 已经被加入进缓存区
  • 使用 git restore --staged bar.txt 将文件移出缓存区, 放进工作区

在这里插入图片描述

git restore
  • 1
  • 使用 git restore 将工作区的代码丢弃, 恢复原状
    在这里插入图片描述

Example: 恢复被删除的文件
在这里插入图片描述

git reset

git reset --soft

  • 仅仅移动当前 Head 指针,不会改变工作区和暂存区的内容
  • 之前commit的内容, 包括新增的文件,会被放进暂存区 (未commit)

Example:

  • 现在工作区 有一个修改, 暂存区有一个修改
    在这里插入图片描述
  • git 记录如下
    在这里插入图片描述
  • 执行 git reset --soft HEAD~1 表示恢复到HEAD指针上一个版本
  • 暂存区和工作区的文件不会被改动, 仅仅是HEAD指针被移动了 而之前的commit (新加10.txt) 全部会被放进缓存区
    在这里插入图片描述
    在这里插入图片描述
  • 注意此时的commit 10不会被丢弃,依然存在
    在这里插入图片描述
  • 如果在工作区或者缓存区的文件就是上次修改的文件,则会合并内容
  • 10.txt 从modified变为 new file,但是内容没有被丢弃
    在这里插入图片描述
    在这里插入图片描述

git reset --mixed

  • 移动当前 Head 指针
  • 之前commit的内容会被放进工作区
  • 目前缓存区的内容也会被放进工作区
  • 新增的文件会变为untracked状态(也就是放进工作区)

Example

  • 下面是mixed reset之前的状态
    在这里插入图片描述
  • 执行 git reset --mixed HEAD~1
  • 原来在缓存区的 1.txt会被放进工作区,而原来的新文件10.txt会被变为untracked状态(放进工作区)
  • 之前的commit内容 新文件 9.txt 也被直接变为untracked状态 (放进工作区)

在这里插入图片描述

git reset – hard

  • 将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交,当前 HEAD 指针、工作区和暂存区内容全部改变
  • 原有文件内容的变更 :修改内容丢失(修改的代码不会变成未add的状态)
  • 目录结构的变更(增加或者删除文件):新增文件丢失、删除的文件相当于没删

Example

  • 下面是hard reset之前的状态
    在这里插入图片描述
  • 执行 git reset --hard HEAD~1 之后,工作区和暂存区全部被清空,回到上一个commit
    在这里插入图片描述
  • 注意, commit 10不会被删除,依然存在
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/463443
推荐阅读
相关标签
  

闽ICP备14008679号