Git重置(Reset)操作详解:硬重置、软重置与混合重置

Git中“重置”(Reset)用于撤销或修改提交历史,通过调整分支指针和工作区/暂存区状态实现,初学者常因混淆类型犯错。其三种常见类型及核心区别如下: **软重置(--soft)**:仅移动HEAD指针,保留工作区和暂存区,适用于修改提交信息或重新提交(如`git reset --soft HEAD~1`)。 **混合重置(默认--mixed)**:移动HEAD并重置暂存区,保留工作区,适合撤销提交后重新整理代码再提交(默认无需参数)。 **硬重置(--hard)**:移动HEAD并彻底重置暂存区和工作区,所有修改永久丢失,仅确认修改无用时使用(如`git reset --hard HEAD~1`),操作不可逆。 关键区别:Reset修改历史(本地未分享适用),Revert创建新提交(已推送时用);硬重置需谨慎,操作前用`git status`确认状态,未备份修改可通过`reflog`尝试恢复(仅本地未推送时)。 总结:软重置轻量改历史,混合默认常用,硬重置危险需确认

阅读全文