当前位置: 首页 > news >正文

Git Reset 命令详解与实用示例

文章目录

  • Git Reset 命令详解与实用示例
    • `git reset` 主要选项
    • `git reset` 示例
      • 1. 撤销最近一次提交(但保留更改)
      • 2. 撤销最近一次提交,并清除暂存区
      • 3. 彻底撤销提交,并丢弃所有更改
      • 4. 回退到特定的提交
      • 5. 取消暂存的文件
    • `git reset` 与 `git revert` 的区别
    • 总结

Git Reset 命令详解与实用示例

git reset 是一个强大的 Git 命令,主要用于撤销提交(commit)、修改暂存区(staging area)或工作区(working directory)。它可以让你回到某个特定的提交,或者只撤销最近的更改,而不影响历史记录。

git reset 主要选项

  1. --soft:只回退提交(commit),保留暂存区和工作区的更改。
  2. --mixed(默认):回退提交,并且清空暂存区(staging area),但保留工作区的更改。
  3. --hard:回退提交,同时清空暂存区和工作区的所有更改。

git reset 示例

1. 撤销最近一次提交(但保留更改)

git reset --soft HEAD~1
  • HEAD~1 表示回退到上一个提交。
  • 仅撤销 commit,但文件的修改仍保留在暂存区(staging area)。
  • 适用于:想修改最后一次提交但不想丢失已暂存的内容。

2. 撤销最近一次提交,并清除暂存区

git reset --mixed HEAD~1
  • 仅撤销 commit,同时将暂存区的更改退回到工作区(但不删除更改)。
  • 适用于:提交了代码但不想保留这个提交,而是继续修改。

3. 彻底撤销提交,并丢弃所有更改

git reset --hard HEAD~1
  • 该命令会将代码回退到上一个提交,并删除所有未提交的更改(无法恢复)。
  • 适用于:不想保留本地的修改,需要完全回到上一个提交的状态。

4. 回退到特定的提交

git reset --hard <commit-hash>
  • <commit-hash> 是目标提交的哈希值(git log 可以查看)。
  • 适用于:回到某个特定版本,并清除之后的所有更改。

5. 取消暂存的文件

git reset HEAD <file>
  • 取消对 <file> 的暂存,但保留其更改。
  • 适用于:错误地使用 git add 暂存了文件,需要取消暂存但不丢失更改。

git resetgit revert 的区别

  • git reset 会直接修改历史记录,适合本地修改,不适用于已推送的提交。
  • git revert 通过创建新的提交来撤销某个提交,适用于共享仓库。

示例:

git revert <commit-hash>
  • 这不会改变提交历史,而是生成一个新的撤销提交,适合多人协作。

总结

命令作用影响
git reset --soft HEAD~1撤销最近一次提交保留暂存区和工作区的更改
git reset --mixed HEAD~1撤销最近一次提交,清除暂存区保留工作区的更改
git reset --hard HEAD~1撤销最近一次提交,并清除所有更改丢失所有未提交的更改
git reset HEAD <file>取消暂存区的文件保留工作区的更改
git revert <commit-hash>撤销某次提交,并生成新的提交不修改提交历史,适合共享仓库

如果你对历史回退有顾虑,建议使用 git revert,而 git reset --hard 要谨慎使用,以免丢失重要代码。

http://www.dtcms.com/a/99236.html

相关文章:

  • LangChain 结构化输出:用 Pydantic + PydanticOutputParser 驯服 LLM 的“自由发挥”
  • 【VP开发如此简单】Vision pro 实现图片跟踪
  • 异步转同步,实现一个消息队列
  • leetcode刷题日记——H 指数
  • 【Qt】数据库管理
  • Unity编辑器功能及拓展(3) —[Attribute]特性
  • 导航到渲染:浏览器加载页面的关键路径分析
  • 链表的创建:头插法与尾插法详解(数据结构)
  • 指纹识别之whois的作用:WHOIS数据在渗透测试中深度利用
  • vmware 创建win10 系统,虚拟机NAT网络设置
  • OJ题:移动零
  • Day 5
  • FPGA实现4K MIPI视频解码转HDMI2.0输出,基于IMX317摄像头,支持4K@60Hz,提供2套工程源码和技术支持
  • Logback 全面指南:从基础配置到高级应用
  • 76个复古黑白科幻几何抽象灵感运动元素纹理DJ舞台背景MV视频/PSD/PNG/JPG素材 Pixflow - Tour Visual Elements
  • 深入实践:基于WebSocket的全球化金融数据实时对接方案。 马来西亚、印度、美国金融数据API
  • 【Python桌面应用】PySide6 界面开发完全指南
  • javascript实现一个函数,将字符串中的指定子串全部替换为另一个字符串的原理,以及多种方法实现。
  • 1014 Waiting in Line
  • C++中shared_ptr 是线程安全的吗?
  • 使用 Avada 主题实现高级表单功能的技术指南
  • Day2 蓝桥杯省赛冲刺精炼刷题 —— 递归与递推
  • 浙江大学公开课|第二季|从大模型、智能体到复杂AI应用系统的构建——以产业大脑为例
  • final+模版设计模式的理解
  • [操作系统,学习记录]3.进程(2)
  • -PHP 应用文件上传函数缺陷条件竞争二次渲染黑白名单JS 绕过
  • AI大模型从0到1记录学习 day09
  • 求解AX=XB 方法
  • 车载软件刷写 --- 由擦除例程问题带来的反思
  • Java 图片压缩:高效压缩方案解析