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

[Git] git reset --hard / git reset --soft

git reset --hard

功能:重置索引(暂存区)和工作目录到指定的提交状态。这意味着它会丢弃所有未提交的更改和已暂存的更改。
适用场景:当你想要完全放弃当前工作目录中的所有更改并回退到某个特定提交状态时,可以使用这个命令。
注意事项:
所有未提交的更改都会丢失,因此在使用这个命令之前,请确保你不需要保留当前的更改。
一旦执行,无法轻易恢复被丢弃的更改,除非使用一些特殊的恢复工具。

将本地未commit的内容都会丢失,然后强制变更到某个commit状态

git reset --soft

功能:仅重置当前分支的 HEAD 指针,而不更改索引(暂存区)和工作目录。这意味着你的所有更改都会保留在暂存区中。
适用场景:当你想要撤销一个或多个提交,但希望保留更改以便重新提交时,可以使用这个命令。
注意事项:
更改会保留在暂存区中,因此你可以对这些更改进行进一步修改或重新提交。

保留你本地的暂存区,即使你当前的代码还没有commit,也不会被丢弃,而只是将你的提交回滚到某个特定的commit

使用 HEAD 进行重置

  1. git reset --hard HEAD:
  • 用途:用于将工作目录和索引重置为当前 HEAD 所指向的提交状态。
  • 效果:相当于抛弃所有未提交的更改和暂存的更改,回到当前分支的最新提交状态。
  • 示例:
    git reset --hard HEAD

注意:这是一个危险操作,会丢失未提交的更改。
2. git reset --hard HEAD~n:

  • 用途:用于将当前分支的指针、工作目录和索引重置到 HEAD 向前 n 个提交的位置。
  • 效果:丢弃最近的 n 个提交,以及所有未提交的更改。
  • 示例:
    git reset --hard HEAD~2

注意:这会永久丢弃这 n 个提交的所有更改。
3. git reset --soft HEAD~n:

  • 用途:将当前分支的 HEAD 指针重置到距 HEAD 的 n 个提交之前,但保留所有更改在暂存区。
  • 效果:撤销最近的 n 次提交,但保留更改以便可能重新提交。
  • 示例:
    git reset --soft HEAD~2
  1. git reset --hard HEAD^:
    HEAD^:这是一个简写,表示当前提交的父提交。HEAD^ 相当于 HEAD~1,即回退一个提交。
  • 用途:撤销最近的一次提交,并将工作目录和暂存区都恢复到这个提交的父提交状态。
  • 效果:丢弃当前分支的最新提交,以及所有未提交的更改。
  • 示例:
    git reset --hard HEAD^

总结

git reset --hard HEAD~n:移动当前分支到 n 个提交之前,并丢弃所有更改。
git reset --soft HEAD~n:移动当前分支到 n 个提交之前,但保留更改在暂存区。
使用这些命令时,特别是 --hard 选项时,请确保你不需要保留那些更改,因为它们会被丢弃。–soft 更安全一些,因为更改会保留在暂存区中,可以在需要时重新提交。


http://www.kler.cn/a/488778.html

相关文章:

  • 【工业自动化摄像头移动机器视觉】
  • 第R4周:LSTM-火灾温度预测
  • 获得PostgreSQL中级认证后,可以从事哪些工作岗位?
  • 了解模2除法:原理与应用
  • 计算机网络 (32)用户数据报协议UDP
  • 统计模型的Flops和Params
  • Perl语言的数据结构
  • STM32的存储结构
  • abap安装cl_json类
  • 玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖
  • Flutter项目开发模版,开箱即用(Plus版本)
  • k8s dashboard离线部署步骤
  • windows中,git bash 使用conda命令
  • ISP流程--去马赛克详解
  • ETL的工作原理
  • 【算法】图解排序算法之归并排序、快速排序、堆排序
  • 基于Linux环境的进度条实现
  • 通过idea创建一个springboot 并执行案例
  • Linux (CentOS) 安装 Docker 和 Docker Compose
  • taro转H5端踩坑
  • 【联合物种分布模型】HMSC联合物种分布模型在群落生态学中的贝叶斯统计分析应用
  • 计算机网络之---局域网
  • 如何在 Ubuntu 22.04 上使用 LEMP 安装 WordPress 教程
  • 关于大数据的基础知识(一)——定义特征结构要素
  • 第二次mysql作业
  • mongodb清理删除历史数据