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

git reset 命令

git reset 的作用

git reset 是一个非常强大的命令,用于将当前分支的 HEAD(即当前指向的提交)重置到指定的提交。它还可以根据参数的不同,对工作区(Working Directory)和暂存区(Staging Area)进行操作。

参数说明

  1. --soft

    • 作用:只移动 HEAD 指针到指定的提交,不改变暂存区和工作区

    • 结果:暂存区和工作区保持不变,但 HEAD 指向了指定的提交。之前 HEAD 之后的提交仍然存在,但不会被追踪

    • 适用场景:当你想撤销最近的提交,但保留更改内容,以便重新提交时。

  2. --mixed(默认选项)

    • 作用:移动 HEAD 指针到指定的提交,并且重置暂存区,但不改变工作区

    • 结果:暂存区的内容会变成指定提交时的状态,但工作区的内容保持不变。这意味着工作区中的更改不会丢失,但需要重新添加到暂存区

    • 适用场景:当你想撤销最近的提交,并且重新选择要提交的内容时。

  3. --hard

    • 作用:移动 HEAD 指针到指定的提交,并且同时重置暂存区和工作区

    • 结果:工作区和暂存区的内容都会变成指定提交时的状态,HEAD 之后的所有更改都会丢失

    • 适用场景:当你想完全撤销最近的提交,并且丢弃所有未提交的更改时。更改没什么重大意义时候。

示例

假设你的提交历史如下:

A -- B -- C -- D (HEAD)

现在你执行以下命令:

bash复制

git reset --mixed B

结果:

  • HEAD 指向提交 B

  • 暂存区的内容变为提交 B 的状态。

  • 工作区的内容保持不变(即包含提交 CD 的更改)。

如果执行:

bash复制

git reset --hard B

结果:

  • HEAD 指向提交 B

  • 暂存区和工作区的内容都变为提交 B 的状态。

  • 提交 CD 的更改完全丢失。

总结

  • --soft:只移动 HEAD,保留暂存区和工作区。

  • --mixed:移动 HEAD,重置暂存区,保留工作区。

  • --hard:移动 HEAD,重置暂存区和工作区。

http://www.lryc.cn/news/533209.html

相关文章:

  • docker被“遗忘”的那些参数该如何拯救
  • BFS算法——广度优先搜索,探索未知的旅程(下)
  • Python分享20个Excel自动化脚本
  • pytest+request+yaml+allure 接口自动化测试全解析[手动写的跟AI的对比]
  • 深入解析 FFmpeg 的 AAC 编解码过程
  • 嵌入式硬件篇---OpenMV串口通信json字符串
  • Python基于Django的课堂投票系统的设计与实现【附源码】
  • 蓝桥杯 Java 之输入输出
  • Kubernetes是什么?为什么它是云原生的基石
  • @emotion/styled / styled-components创建带有样式的 React 组件
  • Android 常用命令和工具解析之Battery Historian
  • 家用报警器的UML 设计及其在C++和VxWorks 上的实现01
  • k8s常见面试题2
  • CSS 伪类(Pseudo-classes)的详细介绍
  • 将Deepseek接入pycharm 进行AI编程
  • 【Ollama】一、介绍
  • ASP.NET Core JWT
  • 查询引擎:它们是什么以及为什么重要
  • 03/29 使用 海康SDK 对接时使用的 MysqlUtils
  • 2025.2.7 Python开发岗面试复盘
  • 一个sql只能有一个order by
  • Windows Docker笔记-在容器中运行项目
  • postgreSQL16.6源码安装
  • 寒假2.5
  • 定期删除一周前的数据,日志表的表空间会增长吗?
  • yum 安装mysql
  • Servlet笔记(下)
  • Windows 中学习Docker环境准备3、在Ubuntu中安装Docker
  • 【centOS】搭建公司内网git环境-GitLab 社区版(GitLab CE)
  • Unity DoTween使用文档