Git Reset 详解:Soft、Mixed、Hard、Keep 选项

打印 上一主题 下一主题

主题 803|帖子 803|积分 2409

在 Git 中,git reset 是一个强盛的命令,用于移动 HEAD 指针和修改提交历史。它有差别的选项,包罗 --soft、--mixed、--hard 和 --keep,每个选项都有差别的用途和影响。本文将深入分析这些选项的作用和用法。
1. --soft 选项

--soft 选项执行一种“软”重置,它会移动 HEAD 指针到指定的提交,但不会影响工作目录和暂存区。具体步调如下:
  1. git reset --soft <commit>
复制代码


  • 不影响工作目录和暂存区: 已修改的文件保存在暂存区,工作目录中的文件也不受影响。
  • 用途: 通常用于取消上一次提交,将更改重新放入暂存区,以便进行修改后再次提交。
2. --mixed 选项

--mixed 选项是 git reset 的默认选项,它执行一种“混淆”重置。具体步调如下:
  1. git reset --mixed <commit>
复制代码


  • 不影响工作目录: 工作目录中的文件保持稳定。
  • 清空暂存区: 暂存区的所有内容都会被清空。
  • 用途: 通常用于取消上一次提交,但保存更改在工作目录中,不放入暂存区。
3. --hard 选项

--hard 选项执行一种“硬”重置,它会彻底打扫工作目录和暂存区。具体步调如下:
  1. git reset --hard <commit>
复制代码


  • 打扫工作目录和暂存区: 工作目录和暂存区的所有内容都会被恢复到指定提交的状态。
  • 慎用: 永久性地丢弃当地的更改,审慎使用。
4. --keep 选项

--keep 选项保存已提交的内容,但打扫未提交的当地更改。具体步调如下:
  1. git reset --keep <commit>
复制代码


  • 清空工作目录: 工作目录中的所有文件都会被清空。
  • 保存已提交的内容: 保存指定提交的内容。
  • 用途: 用于保存提交内容但清空未提交的当地更改。
总结



  • Soft: 保存所有更改并撤销提交。
  • Mixed: 保存工作目录但清空暂存区。
  • Hard: 彻底丢弃当地更改,恢复到指定提交状态。
  • Keep: 保存提交内容但清空未提交的当地更改。
注意: 默认情况下,不带任何选项的 git reset 等同于 git reset --mixed。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

悠扬随风

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表