前言

 对于我们日常开发中,我们常用的方法可能是git reset --hard,来强行回退commit所提交的信息,这是不友好的,也许我们希望对误操作提交的commit不进行删除而是重新修改并进行提交,这个时候就需要–soft操作了,下文将介绍hard模式与soft模式的差异~

git reset中的hard与soft

 对于git reset我们在日常主要是使用其两种模式,分别为hard与soft模式,对于git reset --hard的作用是代码强制回溯到某节点,对于当前节点->回溯节点中间已commit的内容就会全部消失,而git reset --soft模式下与hard模式会有所不同,他会保存当前节点->回溯节点之间已保存的内容。
 --hard场景:1.当我们发现提交的某个commit思路不正确,或与业务有很大的出入时,我们此时可以选择使用–hard去回退版本(–hard)。
 --soft场景:1.当我们不小心把还没有添加完毕的功能commit提交上去时,这个时候我们可以使用–soft去回退我们误提交的commit,完成此功能后,在重新提交commit。
使用:

 // 强回最近一次的commit所提交的内容(不保留内容)git reset --hard // 强回对应commitID的内容(不保留内容)git reset --hard commitID// 恢复最近一次的commit所提交的内容(保留内容)git reset --soft HEAD^// 恢复对应commitID的内容(保留内容)git reset --hard commitID

例子:
初始化三个commit,每个commit对应添加内容a,b,c

reset --soft到b节点

git reset --soft 4fcd5771bbd2a81f1fe60716af79a103e9cc143b

结果:

此时我们软回退到b节点,git log信息中提交节点c的信息消失,并且c的内容被保留回退下来。

reset --hard到b节点

 git reset --hard 4fcd5771bbd2a81f1fe60716af79a103e9cc143b

当我们使用reset --hard时,git log信息中提交节点c的信息消失,并且c的内容不会被保留下来。

git reset中hard与soft区别相关推荐

  1. git reset soft、mixed和hard的区别和用途详讲

    先看看工作区.暂存区和本地版本库的关系 你的项目就在工作区,对于项目新建的文件你必须先add保存到暂存区,再commit提交到本地库: 对于修改的文件可以先add再commit,或者直接commit. ...

  2. git reset --mixed, - soft和--hard有什么区别?

    我希望拆分提交,不知道要使用哪个重置选项. 我在看页面你能解释一下"git reset"用简单的英语做什么吗? ,但我意识到我并不真正理解git索引或临时区域是什么,因此解释没有帮 ...

  3. git reset三种模式区别和使用场景(hard,soft,mixed)

    简单的理解三种模式: hard reset之后,以仓库为准,仓库,暂存区和工作区保持一致,不一致的全部清除: soft reset之后,工作区内容不变,只更新仓库内容,差异保留在index暂存区: m ...

  4. a commit git 参数是什么意思_Git中的git reset的三种参数的区别

    我们平时在使用git的时候,经常会遇到需要撤销上次操作的需求,这时候需要用到git reset的这个命令,他的使用就是 "git-reset – Reset current HEAD to ...

  5. git reset hard/soft/mixed区别

    git reset hard/soft/mixed区别 git reset --soft git reset --mixed或者 git reset (默认是git reset --mixed) gi ...

  6. git 版本回退之关于git reset --hard 和 --soft区别

    去年刚接触android源码开发时候第一次接触git,当时因为framework修改和别人冲突造成不少合并失败,后来学习到了这两个指令,经常用,所以记录一下. git reset --hard HEA ...

  7. git reset --hard、git reset --sort及git revert区别

    一. 在git操作中,有时候,进行了错误的提交,但是还没有push到远程分支,想要撤销本次提交,可以使用git reset –-soft/hard命令. 1.二者区别: git reset –-sof ...

  8. git如何查看缓存区文件内容_详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别...

    一.可以将git简单的分为三个区域   1.工作区(working directory)    2.暂缓区(stage index)    3.历史记录区(history)    如图: 其中git ...

  9. git reset revert rebase 区别

    最近合并他人代码,因为代码是从git代码库之外来的,于是出了各种问题.于是又翻看了git教程.这里推荐两篇: Git教程 - 廖雪峰的官方网站 非常通俗易懂,教了最基本的,十分实用. ###Git 基 ...

最新文章

  1. Oracle数据库联邦,使用联邦数据库将oracle表迁移到DB2(9.7)中的脚本说明
  2. poj2029(二维树状数组)
  3. 二元函数洛必达求极限_由一类特殊的洛必达法则情形展开的讨论 ——小领域的大作用...
  4. linux编译openssl
  5. storm入门——本地模式helloworld
  6. 10.static_extern
  7. 从零开始搭建vue移动端项目到上线的步骤
  8. 阿里安全的“自动逆向机器人”TimePlayer 究竟是什么
  9. 前端实现街道地图_来自法国的注重保护个人隐私的开源地图
  10. html前端毕业设计项目,web前端毕业设计论文..doc
  11. Mysql表数据如何增加汇总统计行(GROUP BY WITH ROLLUP函数用法)
  12. 计算机视觉教程6-1:图解双目视觉系统与立体校正原理
  13. KDD_2018_notes Smoothed Dilated Convolutions for Improved Dense Prediction
  14. 推荐10个实用的程序员开发常用工具
  15. 一定要让你彻底明白什么是USB子系统
  16. 实践使用bfile 数据类型
  17. sin cos tan cot sec csc
  18. linux apache占用内存过高,linux – 找出高CPU占用率的apache进程实际上在做什么?...
  19. 用7000字长文带你分析深圳二手房市场现况!
  20. 2020-12-3 QQ通讯录(不完整内容)

热门文章

  1. HJ卫星数据的下载与打开
  2. 最新19C版Oracle数据库下载安装
  3. Richard Stallman 的自由软件思想
  4. Docker Cgroup资源配置(CPU、内存、磁盘)
  5. *抽象对象的类解释 数解释和真值解释---- 布尔逻辑之五****
  6. 专访:黑客段子手“呆子不开口”| 宅客故事
  7. HDU4751 -(广义孪生素数猜想)
  8. 生产者和消费者问题(单一生产者和单一消费者)
  9. java executor 源码_Java线程池ThreadPoolExecutor深度探索及源码解析
  10. Shopee选品:三个错误的逻辑思维,你犯了吗?