首页
学习
活动
专区
圈层
工具
发布

关于git的reset指令说明-soft、mixed、hard

在开发过程中,git的版本管理越来越普及。在版本管理中,最常用和最重要的是重置提交的版本,恢复后悔做了的事。大家都知道用reset命令。但是有几种形态需要整理共享一下,也方便我自己查阅。...二、reset soft(更改HEAD)(恢复git commit的操作) 软重置。...本来origin的HEAD和本地的HEAD一样,如果你指定--soft参数,Git只是单纯的把本地HEAD更改到你指定的版本那么,整个过程中,就HEAD的定义发生了变化,其他像Working Copy...3.mixed(default)(恢复git add的操作,包含恢复git commit的操作) --mixed是reset的默认参数,也就是当你不指定任何参数时的参数。...1、soft: 重置git commit 2、mixed: 重置git commit 和 git add 3、hard: 重置git commit 和 git add 和工作副本的修改。

4.3K20

解决git reset --soft HEAD^撤销commit时报错

今天在使用git回退功能的时候,遇到以下错误: 解决git reset --soft HEAD^撤销commit时报错 问题: 在进行完commit后,想要撤销该commit,于是使用了git reset...查了下原因可能有两种: 因为cmd控制台中换行符默认是’^ ',而不是\ ,所以^符号被git编译为换行符了,解决方案: git reset --hard "HEAD^" git reset --hard...HEAD~[return times] 该仓库到目前为止只有commit过一次代码,故已经是head版本,也会报这样的错,无需关心直接commit或者rm即可 原因猜想: 想要撤销的commit都是第一次的...commit,此时使用git reset --soft HEAD^命令就会报错。...因此,推测可能是第一次commit的原因,导致命令无法执行。 解决方法:可以使用git update-ref -d HEAD命令来实现想要的效果。

95520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Git reset 与 git revert 的区别说明

    一、git reset 的作用git reset 用于回退提交记录,可以将当前分支指针移动到指定的提交。...常见用法如下:git reset --soft HEAD~1git reset --mixed HEAD~1git reset --hard HEAD~1二、git reset 的三种模式1....--softgit reset --soft HEAD~1效果: 回退提交记录 保留暂存区内容 保留工作区修改 适用于需要重新提交但不想丢失修改的情况。2....四、git reset 与 git revert 的核心区别对比项git resetgit revert是否修改提交历史是否是否生成新提交否是是否安全用于公共分支否是主要用途本地回退撤销已提交内容五、使用场景对比...通过移动分支指针来回退提交 git revert 通过新增提交来撤销已有修改 是否修改历史,是两者最本质的区别 在实际使用中,应根据分支是否共享来选择合适的命令。

    38310

    Git 命令 reset 和 revert 的区别

    revert 两种命令来进行恢复操作,这两种操作效果是截然不同的,不太清楚这个原理的同学需要了解一下,以免在实际的开发过程中翻车,导致线上远程仓库不可逆转的操作。...首先从英文释义来讲,reset 是重置的意思,revert 是恢复、还原的意思,作为 Coder ,第一感觉 reset 的效果比 revert 更猛一些,实际情况也的确如此,让我们一起探讨一下吧。...Reset git reset 的作用是将 HEAD 指向指定的版本上去: git reset 1 使用 git log 查看提交记录: commit b0ef8f9125226af8f06ff1aba7c1f1fc83adea9b...,目前我们是使用 git reset --hard 的方式,其实这里存在着三种方式,TODO 下一篇 git 操作讲一下。...总结 git reset和git revert都是属于重新恢复工作区以及远程提交的方式,但这两种操作有着截然不同的结果: git reset是将之前的提交记录全部抹去,将 HEAD 指向自己重置的提交记录

    7.5K54

    理解 git checkout 与 git reset 的联系和区别

    二者都能影响 HEAD、暂存区与工作区,但功能侧重点不同:git checkout 会移动 HEAD 或检查特定文件版本,git reset 则通过不同模式(--soft、--mixed、--hard)...实际场景中,开发者可通过 git checkout 在多个分支之间快速切换或恢复遗漏文件,利用 git reset 对本地提交进行修正或理清暂存状态,从而灵活管理版本历史。...使用场景在本地分支中对连续提交进行回退和重组时,可先用 git reset --soft HEAD~n 将最近 n 次提交移出历史,并在暂存区定制化地重提交。...git reset 在不同模式下,可取消暂存(--mixed)、保留暂存但保留工作区(--soft)、或彻底丢弃工作区改动(--hard),从而对暂存区与工作区状态产生深远影响。...# 场景四:回退历史提交并保留改动以便重提git reset --soft HEAD~2# 分支指针后退两个提交,改动保留在暂存区,可重新提交。

    59210

    Git之撤销修改 git checkout -- file、git reset HEAD file 的使用

    总之,就是让这个文件回到最近一次git commit或git add时的状态。...reset HEAD ..." to unstage) modified: readme.txt Git同样告诉我们,用命令git reset HEAD 可以把暂存区的修改撤销掉...(unstage),重新放回工作区: $ git reset HEAD readme.txt Unstaged changes after reset: M readme.txt git reset命令既可以回退版本...不过,这是有条件的,就是你还没有把自己的本地版本库推送到远程。还记得Git是分布式版本控制系统吗?...场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。

    2K30

    资源描述框架的用途及实际应用解析

    描述网页的信息(内容,作者,创建和修改日期) 描述网络图片的内容和评级 为搜索引擎描述内容 描述电子图书馆 RDF旨在提供一种通用的描述信息的方式,以便计算机应用程序可以阅读和理解。...RDF使用的XML语言称为RDF/XML。通过使用XML,可以轻松地在使用不同类型的操作系统和应用程序语言的不同类型的计算机之间交换RDF信息。...元素:,,等是资源的属性RDF文档,检查您的语法,并生成您的RDF文档的表格和图形视图。...此外,RDF 还需要一种方法来定义特定于应用程序的类和属性。必须使用 RDF 的扩展来定义特定于应用程序的类和属性。RDF 模式(RDFS)RDF 模式不提供实际的特定于应用程序的类和属性。...相反,RDF 模式提供了描述特定于应用程序的类和属性的框架。RDF 模式中的类与面向对象编程语言中的类非常相似。这允许资源被定义为类的实例,并且类的子类。

    51100

    Git 回滚代码的正确姿势git revert 和 git reset 的区别

    并不适合阅读的个人文档。 git revert 和 git reset 的区别 先看图: sourceTree 中 revert 译为提交回滚,作用为忽略你指定的版本,然后提交一个新的版本。...新的版本中已近删除了你所指定的版本。 reset 为 重置到这次提交,将内容重置到指定的版本。git reset 命令后面是需要加2种参数的:–-hard 和 –-soft。...这条命令默认情况下是 -–soft。 执行上述命令时,这该条commit号之 后(时间作为参考点)的所有commit的修改都会退回到git缓冲区中。...代码回退 默认参数 -soft,所有commit的修改都会退回到git缓冲区 参数--hard,所有commit的修改直接丢弃 $ git reset --hard HEAD^ 回退到上个版本..."add img" 找到你操作的id如:b45959e,就可以回退到这个版本 $ git reset --hard b45959e

    3.5K80

    Oracle参数设置之set与reset的实际案例

    Oracle参数设置之set与reset的实际案例 环境:Oracle 10.2.0.5 RAC 需求:节点1的aq_tm_processes要求恢复默认,节点2设置要求保持不变 背景介绍: 从10.2...然后,在实际上发现,这个默认0和我们手工将其SET设置成0,效果是完全不一样的。...与同事交流此事,最终得知一个技术细节: Oracle中,使用SET设置参数值实际上是少做很多事情的,如果你想恢复Oracle的默认值,最有效的办法就是RESET该值,这样,才会一切都按照Oracle默认的设计...2.2 实验正确的方式 有了上面的基础,就有了实现需求的思路: 我们想下,如果把全局参数也reset,会影响到节点2之前的设置,那么这样,只能将节点2的值单独设定,然后再reset全局参数。...reset aq_tm_processes scope=spfile sid='*'; 本文知识点总结:其实只需下面这3个知识点清楚就ok了: reset操作实际只是将这个值从spfile中移除; 针对某个实例级别的设置优先级高于整体设置

    67430

    C 语言中 extern 关键字的用途及其实际应用

    C 语言作为一种底层编程语言,其设计哲学关注于高效的硬件控制和灵活的内存管理。...extern 关键字是 C 语言中的一个重要特性,为程序员提供了跨文件访问全局变量或函数的能力,支持模块化编程和复杂项目的组织。理解 extern 的用途及其应用场景是编写高效和可维护代码的关键。...实际软件开发中的应用场景模块化编程在大型项目中,代码通常被分为多个模块,每个模块专注于特定功能。...hardware_status; // 声明变量void send_status() { printf("Hardware Status: %d\n", hardware_status);}配置参数的集中管理在实际项目中...动态库和静态库开发在开发动态库或静态库时,extern 的使用非常普遍。库的实现文件中定义了许多全局变量和函数,而这些变量和函数通过 extern 声明暴露给库的使用者。

    55010

    SmartGit初步使用

    在Git如日中天的今天,我也不免俗的想用Git将业余时间写的代码管理一下。 什么是Git这里不多说,具体见廖雪峰的Git教程,ProGit等详细教程。 我们这里直接上手。...二、安装 安装中需要注意的只有两点 1、license:有试用、付费、非商业用途三种,按照个人情况选择。 2、Hosting Providers:我用的是GitHub。...2、具体如下,按照实际情况填写 下面是我创建好的项目。...右键第一个版本的记录,选择Reset可以回归到这个版本。Reset有三种模式可以选择,mixed、soft、hard。...mixed:工作区不变,reset暂存区、reset当前分支 soft:工作区不变、暂存区不变、reset当前分支 hard:reset工作区、reset暂存区、reset当前分支 PS:关于工作区

    2.8K60

    SmartGit初步使用

    在Git如日中天的今天,我也不免俗的想用Git将业余时间写的代码管理一下。 什么是Git这里不多说,具体见廖雪峰的Git教程,ProGit等详细教程。 我们这里直接上手。...二、安装 安装中需要注意的只有两点 1、license:有试用、付费、非商业用途三种,按照个人情况选择。 2、Hosting Providers:我用的是GitHub。...2、具体如下,按照实际情况填写 ? 下面是我创建好的项目。 ? 3、使用SmartGit把它clone下来 打开SmartGit,在菜单里选择Repository→Clone ?...右键第一个版本的记录,选择Reset可以回归到这个版本。Reset有三种模式可以选择,mixed、soft、hard。...mixed:工作区不变,reset暂存区、reset当前分支 soft:工作区不变、暂存区不变、reset当前分支 hard:reset工作区、reset暂存区、reset当前分支 PS:关于工作区

    1.7K70

    Git恢复之前版本的两种方法reset、revert(图文详解)

    ,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回退(reset)、反做(revert)。...二、背景知识 git的版本管理,及HEAD的理解 使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。...三、解决方法 方法一:git reset 原理: git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,如下图所示,假设我们要回退到版本一: ?...使用“git reset --hard 目标版本号”命令将版本回退: ? 再用“git log”查看版本信息,此时本地的HEAD已经指向之前的版本: ?...方法二:git revert 原理: git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。

    13K30

    Git 命令

    [–mixed | –soft | –hard | –merge | –keep] [-q] [] git reset [-q] [] [–] … git reset –patch [] [–] […...] 命令 描述 git reset –mixed 重置已提交和缓存区域 git reset –soft 仅仅重置已提交 git reset –hard 重置已提交、缓存区域和工作目录 三棵树 Git...Git 作为一个系统,是以它的一般操作来管理并操纵这三棵树的: 树 用途 HEAD 上一次提交的快照,下一次提交的父结点 Index 预期的下一次提交的快照 Working Directory 工作目录...reset、checkout reset 命令会以特定的顺序重写这三棵树,在你指定以下选项时停止: 移动 HEAD 分支的指向 (若指定了 –soft,则到此停止) 使索引看起来像 HEAD (若未指定...Commit Level reset –soft [commit] REF NO NO YES reset [commit] REF YES NO YES reset –hard [commit] REF

    1.1K20

    静态住宅IP代理实际应用:它的强大用途你知道吗?

    与数据中心IP不同,静态住宅IP是从互联网服务提供商(ISP)获取的,因而拥有更高的可信度和较低的被封禁风险。它们常被用于需要稳定IP地址的应用场景,如网络营销、数据采集和社交媒体管理。...静态住宅IP代理与动态IP代理的区别静态住宅IP代理与动态IP代理的主要区别在于IP地址的稳定性。动态IP代理提供的IP地址在每次连接时都可能发生变化。...相比之下,静态住宅IP代理提供稳定的IP地址,适用于长期的网络活动和需要建立信誉的场景。...– 成本效益:虽然静态住宅IP代理的成本可能高于动态IP,但其带来的长期稳定性和较低的风险使得投资具有较高的回报。...网络营销中的IP需求主要集中在两个方面:一是保持营销活动的匿名性和安全性,二是确保内容的有效传达和广告的精准投放。静态住宅IP代理在这两方面都发挥着重要作用。

    75410

    新手开发小白惊魂记:一次惊悚的git reset经历

    现在,我们可以使用git reset命令将当前分支恢复到目标commit。git reset的三种模式git reset --soft:仅移动HEAD指针,不改变暂存区和工作区。...git reset --mixed(默认):移动HEAD指针,更新暂存区,但不改变工作区。git reset --hard:移动HEAD指针,更新暂存区和工作区,丢弃所有未提交的修改。...理解命令的本质不再把 Git 命令当作黑盒魔法。我花了时间认真学习了 rebase、merge、reset 的区别和适用场景。...3 使用git reset --hard [hash]:恢复到指定的commit版本。4 验证恢复:使用git status和ls命令确认文件已恢复。...这次惊悚的经历没有造成实际损失,但它给我的记忆打上了一个永久的安全意识烙印。它让我明白,强大的工具需要配以谨慎和知识,否则它们带来的不是效率,而是灾难。

    19710

    实际开发中Git merge和rebase指令的使用

    ​博主最近在用GIt管理一个微服务项目,遇到了这两个指令,开始甚是不解,通过不断学习整理出了这篇博文,如果其中有错误的地方,还请批评指正。...导语Git的merge和rebase看似都能整合代码,但一个保留历史、一个重写历史。在团队协作中,错误的选择可能悄悄覆盖他人的工作。...区别一句话先记住gitrebase是重写历史,十分危险gitmerge是保留历史,安全可靠在实际应用中gitrebase:将当前分支X(dev)变基到选中分支Y(main)IDEA中对应指令:Rebasecurrentonselected...merge后同事看到的是:“哦,主干合进来了,多了一个mergecommit”“继续写代码吧”如果负责开发func2功能分支的同事进度和主分支进度一致,此时开发func1分支的成员有人使用rebase指令向公共分支提交了修改...——即当第二天开发func2分支的同事从远程仓库拉取代码,就会看到类似下面几种提示“我昨天写的F、G怎么没了?”“为啥Git说我分支跟远程没关系?”“我是不是操作错了?”

    26200

    7.7 Git 工具 - 重置揭密

    Git 作为一个系统,是以它的一般操作来管理并操纵这三棵树的: 树 用途 HEAD 上一次提交的快照,下一次提交的父结点 Index 预期的下一次提交的快照 Working Directory 沙盒...另外两棵树以一种高效但并不直观的方式,将它们的内容存储在 .git文件夹中。 工作目录会将它们解包为实际的文件以便编辑。 你可以把工作目录当做 沙盒。...无论你调用了何种形式的带有一个提交的 reset,它首先都会尝试这样做。 使用 reset --soft,它将仅仅停在那儿。...它还有 取消暂存文件 的实际效果。 如果我们查看该命令的示意图,然后再想想 git add 所做的事,就会发现它们正好相反。 ? Figure 7-14....那么可以运行 git reset --soft HEAD~2 来将 HEAD 分支移动到一个旧一点的提交上(即你想要保留的第一个提交): ? Figure 7-17.

    63630

    【git系列】git命令之撤销回退篇

    #撤销指定文件 git reset HEAD 这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化。...命令:git merge --abort commit后回退指定版本 命令git reset - git reset --soft: 将分支回退到指定提交,工作区维持现状不变,暂存区会在现有基础上增加该...- git reset --hard: 将分支回退到指定分支,暂存区和工作区都会被同步为该指定的提交。 git reset后的三个参数回退程度是依次递进。...soft最轻微,它不会重置当前工作区和暂存区,只会将回退版本后续的提交加到暂存区。 mixed会改变暂存区,使它和回退版本同步。 hard会重置工作区和暂存区,使它和回退版本一致。.../* git reset --soft target */ working index HEAD target working index HEAD ----

    2K10
    领券