Git撤销命令revert与reset区别全面对比
Git撤销命令revert与reset的核心区别:revert通过创建新提交撤销更改,安全且保留历史,适合已推送的共享仓库;reset直接回退或删除提交,会修改历史,仅适合本地未推送的提交。公共历史用revert,私有历史用reset。
前言
今天有同事问起Git的撤销命令,revert和reset到底有什么区别?索性整理一下,做一次比较全面的对比。总的来说,git revert 和 git reset 都是用来撤销更改的,但它们的运作方式和适用场景,差别其实非常大。
核心区别对比
| 特性 | git revert | git reset |
|---|---|---|
| 安全性 | 安全 - 不改变历史记录 | 危险 - 会修改历史记录 |
| 操作对象 | 提交(commit) | 提交(commit)或暂存区 |
| 历史记录 | 创建新的撤销提交 | 删除/移动提交历史 |
| 团队协作 | 适合共享仓库 | 不适合已推送的提交 |
| 工作区影响 | 不影响未提交的更改 | 根据模式影响工作区 |
详细说明
git revert
作用:创建一个新的提交来撤销指定提交的更改
使用场景:撤销已推送到远程仓库的提交
命令示例:
# 撤销最近一次提交 git revert HEAD # 撤销指定提交 git revert
# 撤销多个连续提交 git revert ..
特点:
历史记录中会保留原提交和新创建的撤销提交
可以撤销任意历史提交,而不影响后续提交
适合团队协作环境
git reset
作用:将当前分支重置到指定状态,有三种模式
三种模式对比:
| 模式 | 工作区 | 暂存区 | 历史记录 | 适用场景 |
|---|---|---|---|---|
| --soft | 不变 | 保留更改 | 回退 | 修改提交信息 |
| --mixed (默认) | 不变 | 清空 | 回退 | 重新组织提交 |
| --hard | 清空 | 清空 | 回退 | 彻底放弃更改 |
命令示例:
# 重置到前一个提交(保留工作区更改,取消暂存) git reset HEAD~1 # 重置并保留更改在暂存区 git reset --soft HEAD~1 # 彻底重置,丢弃所有更改 git reset --hard HEAD~1 # 重置到特定提交 git reset --hard
使用建议
使用git revert当:
撤销已推送到远程仓库的提交
需要保留完整的历史记录
多人协作,避免影响他人工作
只想撤销某个特定提交,而保留后续更改
使用git reset当:
撤销本地未推送的提交
需要重写本地历史(如整理提交记录)
完全放弃某些本地更改
注意:如果提交已推送,需要强制推送(
git push -f),这会破坏团队协作(且强制推送后会抹掉git仓库中原来的提交记录)
实际示例
# 错误提交了不该提交的文件,但已推送到远程 # ✅ 正确做法:使用 revert git revert HEAD git push # 本地提交了错误信息,还未推送 # ✅ 正确做法:使用 reset git reset --soft HEAD~1 # 修改文件后重新提交 git add . git commit -m "正确的提交信息" # 想完全放弃最近的本地更改 # ✅ 使用 hard reset(谨慎!) git reset --hard HEAD # reset 后必须使用 -f 强制push才能推送成功 git push -f
重要原则:
已推送的提交:总是使用
revert未推送的本地提交:可以使用
reset未跟踪的本地更改:使用
git checkout --或git clean
记住这个简单规则:公共历史用 revert,私有历史用 reset。
总结
- reset是彻底回退到指定的commit版本,该commit后的所有commit都将被清除,包括提交历史记录;
- revert仅仅是撤销指定commit的修改,并不影响后续的commit,但所撤销的commit被后续的commit修改了同一地方则会产生冲突;
- reset执行后不会产生记录,revert执行后会产生记录;
- reset执行后无法再次恢复,revert执行后因为不会清除记录,并且会产生新纪录,所以文件不会丢失,你可以多次执行revert恢复到某次改变之前的状态;
- reset执行后HEAD会后移,而revert的HEAD则一直是向前的;
理清了reset和revert的基本原理,你在什么时间该使用哪个命令,心里自然就有数了。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。
CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。
Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。
Wise Folder Hider Pro 是一款专业级文件和文件夹隐藏加密软件,为私密数据添加多重保护。高频操作更强调就近处理,浏览、整理和跨目录移动文件时,来回切换和重复点击都会少很多。
CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。


























