news 2026/4/16 12:13:09

Git撤销命令revert与reset区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Git撤销命令revert与reset区别

今天有同事问我Git的撤销命令revert与reset有什么区别?特意整理了一下,做个比较全面的对比。总体来说,git revertgit reset都是用于撤销更改的 Git 命令,但它们的工作方式和用途都有显著区别。

核心区别对比

特性git revertgit reset
安全性安全 - 不改变历史记录危险 - 会修改历史记录
操作对象提交(commit)提交(commit)或暂存区
历史记录创建新的撤销提交删除/移动提交历史
团队协作适合共享仓库不适合已推送的提交
工作区影响不影响未提交的更改根据模式影响工作区

详细说明

git revert

  • 作用:创建一个新的提交来撤销指定提交的更改

  • 使用场景:撤销已推送到远程仓库的提交

  • 命令示例

    # 撤销最近一次提交 git revert HEAD # 撤销指定提交 git revert <commit-hash> # 撤销多个连续提交 git revert <oldest-commit>..<latest-commit>

特点

  • 历史记录中会保留原提交和新创建的撤销提交

  • 可以撤销任意历史提交,而不影响后续提交

  • 适合团队协作环境

git reset

  • 作用:将当前分支重置到指定状态,有三种模式

三种模式对比

模式工作区暂存区历史记录适用场景
--soft不变保留更改回退修改提交信息
--mixed(默认)不变清空回退重新组织提交
--hard清空清空回退彻底放弃更改

命令示例

# 重置到前一个提交(保留工作区更改,取消暂存) git reset HEAD~1 # 重置并保留更改在暂存区 git reset --soft HEAD~1 # 彻底重置,丢弃所有更改 git reset --hard HEAD~1 # 重置到特定提交 git reset --hard <commit-hash>

使用建议

使用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 -- <file>git clean

记住这个简单规则:公共历史用 revert,私有历史用 reset

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 10:13:44

享扭蛋机比较实用的功能分享

1.扭蛋机用户可以通过小程序选择不同的扭蛋机进行扭动&#xff0c;每次扭动都有奖会获得随机的奖品2.用户可以也可以通过充值或完成任务获得积分&#xff0c;积分可用于抽奖、兑换奖品等。此外&#xff0c;会员还可以享受更多的抽奖机会和优惠活动。3.用户获得稀有产品可分享好…

作者头像 李华
网站建设 2026/4/15 13:20:00

免费音乐制作神器LMMS:从零到专业的完整入门指南

作为一款功能强大的跨平台开源数字音频工作站&#xff0c;LMMS为音乐创作者提供了完整的音乐制作解决方案。无论你是初学者还是专业音乐人&#xff0c;这款软件都能满足从作曲编曲到混音母带的全流程需求。 【免费下载链接】lmms Cross-platform music production software 项…

作者头像 李华
网站建设 2026/4/10 18:26:31

瑞昱Realtek无线网卡8188GU驱动:Windows与Linux双平台终极解决方案

瑞昱Realtek无线网卡8188GU驱动&#xff1a;Windows与Linux双平台终极解决方案 【免费下载链接】瑞昱Realtek无线网卡8188GU驱动Windows 本仓库提供了一个适用于瑞昱Realtek无线网卡8188GU的Windows驱动程序。该驱动程序是从水星MW150UH驱动中提取出来的&#xff0c;可以作为Nd…

作者头像 李华
网站建设 2026/3/21 3:37:36

C语言实战3

C语言实战项目&#xff1a;学生成绩管理系统项目目标 开发一个基于C语言的学生成绩管理系统&#xff0c;实现成绩录入、查询、统计及文件存储功能。核心功能实现数据结构设计 使用结构体存储学生信息&#xff0c;包含学号、姓名、科目成绩等字段&#xff1a;typedef struct {ch…

作者头像 李华
网站建设 2026/4/13 11:42:06

人工智能基础知识笔记二十七:构建一个可以搜索本地文件的Agent

本篇文章主要介绍如何构建一个Agent能够解析输入的文字&#xff0c;理解其意图&#xff0c;并且在本地文件系统中搜索符合条件的文件。同时还提供一个Web的页面可以交互式查询本地文件系统。1、功能说明主要功能时根据用户输入的符合条件的需求描述&#xff0c;如&#xff1a;f…

作者头像 李华
网站建设 2026/4/16 11:07:23

Avalonia XPF:WPF跨平台迁移的终极解决方案

Avalonia XPF&#xff1a;WPF跨平台迁移的终极解决方案 【免费下载链接】Avalonia AvaloniaUI/Avalonia: 是一个用于 .NET 平台的跨平台 UI 框架&#xff0c;支持 Windows、macOS 和 Linux。适合对 .NET 开发、跨平台开发以及想要使用现代的 UI 框架的开发者。 项目地址: htt…

作者头像 李华