git reset的回退参数hard、soft和mixed

技术标签: java语法

git reset的回退参数hard、soft和mixed

想要git reset命令回退到项目的某个commit版本,而有hard、soft、mixed三个参数可供选择。下面先给结论:

摘自链接

reset三种模式区别和使用场景:
1、–hard: 会将项目文件目录及commit记录都回退到目标commit。适用于需要修改项目目录的情况,而另外两个配置的项目文件是不会修改的。

2、 –soft: 保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致。适用于需要将多个commit合并简化成一个commit的情况。

3、 –mixed(默认) 重置位置的同时,只保留Working Tree工作目录(项目文件)的內容,但会将 Index暂存区 和 Repository 中的內容更改和reset目标节点一致。适用于移除所有Index暂存区中准备要提交的文件(Staged files),我们可以执行 git reset HEAD 来 Unstage 所有已列入 Index暂存区 的待提交的文件。(有时候发现add错文件到暂存区,就可以使用命令)。

原理:

  • Working Tree 当前的工作区域
  • Index/Stage 暂存区域,和git stash命令暂存的地方不一样。使用git add xx,就可以将xx添加近Stage里面
  • Repository 提交的历史,即使用git commit提交后的结果

在这里插入图片描述
文件存入Repository流程
在这里插入图片描述
文件存入Repository流程:
1、刚开始 working tree 、 index 与 repository(HEAD)里面的內容都是一致的
在这里插入图片描述
2、当git管理的文件夹里面的内容出现改变后,此時 working tree 的內容就会跟 index 及 repository(HEAD)的不一致,而Git知道是哪些文件(Tracked File)被改动过,直接将文件状态设置为 modified (Unstaged files)。
在这里插入图片描述
3、当我們执行 git add 后,会将这些改变的文件內容加入 index 中 (Staged files),所以此时working tree跟index的內容是一致的,但他们与repository(HEAD)內容不一致。
在这里插入图片描述
4、接着执行 git commit 後,將Git索引中所有改变的文件內容提交至 Repository 中,建立出新的 commit 节点(HEAD)后, working tree 、 index 與与repository(HEAD)区域的内容 又会保持一致。
在这里插入图片描述

来源:https://www.jianshu.com/p/c2ec5f06cf1a


智能推荐

git 回退版本 git reset(--hard、--soft)、revert命令 区别及理解

概念 工作区: 如图所示我新建了一个文件 a  此时他就是处于工作区的文件 也可以将工作区理解为 未使用 git add 的文件(图中红色a) 暂存区: 使用了 add 命令将工作区中的文件a提交到了暂存区 也可以将暂存区理解为已使用 git add,但未使用 git commit 的文件(图中绿色a) git reset xxx、git reset --hard xxx、gi...

关于git中soft mixed hard的区别以及keep的理解

关于git中soft mixed hard的区别以及keep的理解 当使用回滚版本的时候,在使用hard、soft、mixed是不一样的 1、hard ①移动本地库HEAD指针 ②重置暂存区 ③重置工作区 意思就是,回滚后,本地代码就是你回退版本的代码 2、soft ①移动本地库HEAD指针 意思就是,回滚后,仅仅是把本地库的指针移动了,而暂存区和你本地的代码是没有做任何改变的。而你上次改动已提交...

git中soft mixed hard keep的区别以及keep的理解

    1、soft ①移动本地库HEAD指针 意思就是,回滚后,仅仅是把本地库的指针移动了,而暂存区和你本地的代码是没有做任何改变的。而你上次改动已提交committed到本地库的代码显示是绿色即未提交 2、mixed ①移动本地库HEAD指针 ②重置暂存区 意思就是,回滚后,不仅移动了本地库的指针,同时暂存区的东西也没了,意思就是你上次添加到暂存区的文件没了 原文链接:ht...

git 版本回退 git reset --hard HEAD

git 版本回退 git reset --hard HEAD 一不小心用git pull拉取远程仓库代码 ,把本地开发的新代码直接覆盖掉,这时想恢复本地代码要如何操作 1.进入到项目git本地仓库文件夹下 2.打开cmd窗口,执行命令:git reflog 其中: HEAD@{0}表示当前版本,即你本地最新版本 3.找到需要回退的版本,执行命令:git reset --hard HEAD@{n} ...

The Design of Everyday Things 读书笔记

  近日抽闲读了老师推荐已久的这部设计史上的著作——唐纳德诺曼的The Design of Everyday Things,中文译名是《设计心理学》,全套共四部,我读了第一部,总的感觉就一个词——恍然大悟!被作者的细心以及擅于思考所折服,他能够抓住生活中很多人习以为常的不方便和小错误,从而解释糟糕的设计可能带给我们的麻烦甚至灾难。...

猜你喜欢

博客,记录一点一滴,终将汇聚成星辰大海

博客,记录一点一滴,终将汇聚成星辰大海 目录 写博客的好处: 要怎么写博客: 写博客的好处: 【1】我认为写博客能充当自己的资料库,你能随时翻阅你之前学的所有东西,你是否有这样的经历,明明自己之前学过这方面的内容,而且还挺熟悉,但怎么都记不起来具体细节,这时候你的资料库就能最快帮你回忆起你学的东西。 【2】把自己学到的经验,分享出来,自己之前踩到的所有坑都记录下来,当读者读你的博客时,就能少走一些...

一个好玩的工具BeEF介绍及未来要实验

beef BeEF-XSS是一款非常强大的web框架攻击平台,集成了许多payload,可以实现许多功能 BeEF-XSS可以说是最强大的XSS漏洞利用工具,可以收集浏览器信息、键盘记录、社会工程等 总之就是使用beef这个工具来利用xss漏洞的 beef安装 我在kail虚拟机上安装的,很简单的在终端输入一句命令sudo apt setup beef-xss,然后安装成功设置密码就行了,因为之后...

IDEA学习篇——findbugs 插件 下载、安装、使用详解

首先我下载的版本是 FindBugs-IDEA-1.0.1 ,然后我会在文中提供(FindBugs-IDEA-1.0.1.zip)下载资源,我在安装过程中的问题如下: 1,在编辑器里面始终下载不下来,每次都是一半的时候就失败啦。最后就去网上下载zip文件本地安装。 下面就是下载安装使用一条龙服务详情 先是在这个编辑器里面怎么安装这个插件的示范。也许你网络很顺畅呢,就OK拉。 我是等到花儿都谢啦,也...

块级格式化上下文

块级格式化上下文听说过多次,自己也去看了许多文章,但自己总是觉得晦涩,搞不清楚,后来又再去查了下很多文章,终于觉得自己理解一些了,希望自己描述出来能够准确和易懂。 Formatting context Formatting context 是页面的一个渲染区域,它有着自己的渲染规则,决定渲染区域里面的元素怎么定位,以及里面的元素之间的相互作用。而块级格式化上下文(Block fomatting c...

meter资源监控器开发——关键代码分析

代码分析也无需事无巨细皆列而剖之,只要找到关键所在也就是了;又不然列一堆的声明上来,纵然有人有耐心看下去,我也没耐心写下去啊。特别关注了三 个类,Stats、MonitorPerformancePanel、MonitorGraph。分别是获取解析得到的数据、监控器面板显示和监视器上的 图像绘制。下面选取了一些关键代码来进行分析: 首先是Stats.java,下面是计算内存使用率的方法 public...

问答精选

Applying stats.percentileofscore to every row by column

df= I need a new column with the percentile score for each element with respect to the column. The final answer should look like this. I want the output of the stats.percentileofscore() function to be...

C - Creating node with multiple children by function - segmentation fault

I want to create tree with multiple children and create every node with a function. Here is my structure for node: And here is my function to create new node (with four children): When I run this func...

How to get all secrets in one call Azure key vault

I am using sample code explain here https://github.com/Azure-Samples/app-service-msi-keyvault-dotnet but they only explained how can we get single secrete not list of secrete. so to get all secrete I'...

increase eclipse IDE font size

I am using Eclipse I would like to increase the font size of the IDE, not just the font of the editor. Is there any way I can do that? I haven't been able to find a solution for this yet. you can try ...

Generating Guid by database automatically

It regards Entity Framework 6 but maybe it isn’t related to the version. I have some class which has Guid Id but by inheritance. Right now I would like to change this model to auto generate Id b...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答