首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Git reset 与 git revert 的区别说明

Git reset 与 git revert 的区别说明

原创
作者头像
用户11958489
发布2025-12-19 14:45:50
发布2025-12-19 14:45:50
2830
举报

在 Git 中,git resetgit revert 都可以用于撤销提交,但两者的作用方式和使用场景并不相同。下面对二者的区别进行整理和说明。


一、git reset 的作用

git reset 用于回退提交记录,可以将当前分支指针移动到指定的提交。

常见用法如下:

代码语言:javascript
复制
git reset --soft HEAD~1
代码语言:javascript
复制
git reset --mixed HEAD~1
代码语言:javascript
复制
git reset --hard HEAD~1

二、git reset 的三种模式

1. --soft

代码语言:javascript
复制
git reset --soft HEAD~1

效果:

  • 回退提交记录
  • 保留暂存区内容
  • 保留工作区修改

适用于需要重新提交但不想丢失修改的情况。


2. --mixed(默认)

代码语言:javascript
复制
git reset HEAD~1

效果:

  • 回退提交记录
  • 清空暂存区
  • 保留工作区修改

这是最常用的 reset 模式。


3. --hard

代码语言:javascript
复制
git reset --hard HEAD~1

效果:

  • 回退提交记录
  • 清空暂存区
  • 清空工作区修改

⚠️ 该操作会丢失未提交的修改,需要谨慎使用。


三、git revert 的作用

git revert 用于撤销某一次提交的影响,但不会修改已有的提交历史。

代码语言:javascript
复制
git revert <commit_hash>

执行后会生成一个新的提交,用于抵消指定提交的内容。


四、git reset 与 git revert 的核心区别

对比项

git reset

git revert

是否修改提交历史

是否生成新提交

是否安全用于公共分支

主要用途

本地回退

撤销已提交内容


五、使用场景对比

  • git reset
    • 适合本地分支操作
    • 尚未推送到远程仓库
    • 需要调整或合并提交记录
  • git revert
    • 适合已经推送的提交
    • 多人协作分支
    • 需要保持提交历史完整

六、小结

  • git reset 通过移动分支指针来回退提交
  • git revert 通过新增提交来撤销已有修改
  • 是否修改历史,是两者最本质的区别

在实际使用中,应根据分支是否共享来选择合适的命令。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、git reset 的作用
  • 二、git reset 的三种模式
    • 1. --soft
    • 2. --mixed(默认)
    • 3. --hard
  • 三、git revert 的作用
  • 四、git reset 与 git revert 的核心区别
  • 五、使用场景对比
  • 六、小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档