git-reset

Git:Git重置(git reset) 一、分支游标master的探秘 1.查看.git/refs/heads/master执行的commit为f22d9e; 2.通过查看git log可以知道当前的master分支执行最新的commit为f22d9e; 3.新建文件new-commit.txt,并进行新的提交,使master分支指向刚创建的commit为c132b2c; 阅读详情

git-reset/revert命令:

git 分布式版本控制系统,强大的分支管理
工作区、暂存区(add)、本地仓库(commit)、远程仓库(push)
git reset :用于回退版本,可以指定退回某一次提交的版本。
git reset [–soft | --mixed | --hard] [HEAD]

  • –soft
  • –mixed 默认的可以不带,重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
  • –hard
    在这里插入图片描述
    在这里插入图片描述

1、git reset --soft:

  • 只回退了commit的信息。如果还要提交,直接commit即可
  • 如果还要提交,直接commit即可(修改的内容变成未add的状态),索引(暂存区)和工作目录的内容是不变的,
  • 在git reset三个命令中对现有版本库状态改动最小。
  • 修改内容还在,只是本次提交信息回退了,重新提交即可

2、git reset --mixed(git reset)

  • 修改内容还在,变成未add的状态
  • 需要重新git add 、git commit

3、git reset --hard

  • 彻底回退到某个版本,本地的代码也会变为上一个版本的内容,所有修改的内容都会丢失,
  • 丢失本地修改
  • 可用这个命令来实现和远程强行reset,一定程度上解决提交时因为本地代码不是最新提交产生冲突的问题
    • git reset --hard origin/xxx
  • 一般本地执行git reset --hard,此时执行git push会报错,就是因为本地的代码比远程的旧,故要使用git push -f (强推)

4、注意:

4.1、恢复git reset —hard的误操作

  • 起因:不小心通过git reset —hard将版本回退到之前的commit
  • git reflog命令,找到要退回的commitId
  • 再次强行 git reset --hard commitId

4.2、git revert

  • commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,
  • 可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。如下图所示:
    在这里插入图片描述
  • 撤销之前某个版本,又想保留目标版本之后的版本
  • git revert -n 版本号(撤销的版本)----git commit -m 版本名”------git push

4.3、git revert 和 git reset的区别

  1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
  2. 回滚操作,效果差不多。但是继续merge以前的老版本时有区别。
    • git revert:一次逆向的commit,因此日后合并老的branch时,导致这部分改变不会再次出现,
    • git reset:把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。
  3. 移动方向不同:
    • git reset :HEAD向后移动了一下,
    • git revert:HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

4.4、HEAD 说明:

HEAD 表示当前版本

  • HEAD^ 上一个版本
  • HEAD^^ 上上一个版本
  • HEAD^^^ 上上上一个版本
  • 以此类推…
    可以使用 ~数字表示
  • HEAD~0 表示当前版本
  • HEAD~1 上一个版本
  • HEAD~2 上上一个版本
  • HEAD~3 上上上一个版本
  • 以此类推…

4.5、代码回滚

  • 工作区:
    • git checkout – a.txt # 丢弃某个文件
    • git checkout – . # 丢弃全部
    • 新增的文件会被删除、删除的文件会恢复回来、修改的文件会回去。这几个前提都说的是,回到暂存区之前
    • 对暂存区没有任何影响
    • 之前都没有暂存或commit,回到上一次pull
  • 暂存区:
    • git add到缓存区,并未commit提交
    • git reset HEAD .
    • git reset HEAD a.txt
    • 这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化
  • 本地仓库:
    • git commit到本地分支、但没有git push到远程
    • git log # 得到你需要回退一次提交的commit id
    • git reset --hard <commit_id> # 回到其中你想要的某个版本
    • git reset --hard HEAD^ # 回到最新的一次提交
    • git reset HEAD^ # 此时代码保留,回到 git add 之前
  • 远程仓库:
    • git push把修改提交到远程仓库
    • git reset是直接删除指定的commit
      1. git log # 得到你需要回退一次提交的commit id
      2. git reset --hard <commit_id>
      3. git push origin HEAD --force # 强制提交一次,之前错误的提交就从远程仓库删除
      4. 一般企业开发中不允许强推
  • git revert是用一次新的commit来回滚之前的commit
    • git log # 得到你需要回退一次提交的commit id
    • git revert <commit_id> # 撤销指定的版本,撤销也会作为一次提交进行保存
git之reset命令 1.简介 git-reset:将当前的HEAD重置为指定状态,也就是重置顶部commit的引用 2.概要 git reset [-q] [<tree-ish>] [--] <pathspec>…​ git reset [-q] [--pathspec-from-file=<file> [--pathspec-file-nul]] [<tree-ish>] git reset (--patch | -p) [<tree-is... 阅读详情

相关推荐

解决vscode无法运行npm命令的问题(cmd可行)

Powershell以及vscode中npm命令使用不了

无痕坚守本心的博客 2751

git 还原到某次commit并强制推送远程

不可逆提交一,reset1.git log查看提交记录git log12.选择某次提交的commit ID,ctrl+c复制提交ID3.使用git reset –hard 还原到某一次提交git reset --hard commit ID1二,checkout 1.git checkout commit ID ,这个命令达到的效果和git reset –hard一样都是不可逆提交git chec............

len的博客 3万+

倾向得分匹配的stata命令_政策评估方法引荐|广义倾向得分匹配(GPSM)

和大家分享一下最近学习的进展,在痛苦读完stata journal和练习OA程序,已经可以基本完成广义倾向得分的估计了,在国内这一方法还没有形成广泛运用,因此学习资源也是有点稀缺的,在文章最后给各位提供数据和代码以供练习。有问题可以随时文末留言或者联系我哦。人文社会科学中一般无法在实验室中控制样本个体的特征,我们一般采用“准自然实验”的研究路径,也就是不随机安排样本接受处理与否。但放弃随机分组假定...

weixin_39550258的博客 1万+

git删除远程分支提交记录(reset回去然后强推)

项目中遇到这么一个问题,git上创建了一个新项目,并且push2条修改到远程分支;但是发现注释是有问题的,想修改;其实这时候想直接删除项目重新创建,但是owner不是我,没有权限,所以这里通过git删除远程分支的提交记录 主要涉及两条命令 git reset --hard HEAD^ git push --force 如图,想删除test01和test02 输入:git reset --ha...

倒骑驴走着瞧的博客 6559

DDS器件原理与应用(AD9833 AD9834)

是DDS的核心组成部分,用于实现相位的累加,并输出相应的幅值。相位累加器由M位宽加法器和M位宽寄存器组成,通过时钟控制,将上一次累加结果反馈到加法器输入端实现累加功能,从而使每个时钟周期内的相位递增数为,并取相位累加结果作为地址输出给ROM查找表部分。DDS的相位信息被存放在累加寄存器中,虽然幅值和相位不是线性关系,但寄存器累加值和相位可以是线性关系,很容易用寄存器的累加值表达相位信息。

m0_49968063的博客 6448

电动汽车整车控制器 UDS诊断功能开发调试优化方法

摘要:通过某电动汽车VCU开发过程中,UDS诊断功能的调试,发现一些测试中存在的问题,比如覆盖度不够、效率低下等,提出了相应的优化方法,并经过测试验证其可行性,此方法亦可推广应用至BMS、HCM等其他控制器的UDS诊断开发调试过程中。希望能给相关技术人员带来参考和帮助。

qq_43011586的博客 2143

Git版本回退操作

“git reset --hard”是强制回退到上一个版本或特定版本,此操作不可逆,在使用之前请慎重考虑清楚。

LZD_jay的专栏 2417

2015年全国大学生电子设计大赛综合测评题

2015年全国大学生电子设计大赛综合测评题 题目如下: 一、555产生可调方波 555定时器是一种集成电路芯片,常被用于定时器、脉冲产生器和振荡电路。555可被作为电路中的延时器件、触发器或起振元件。 555定时器可组成单稳态电路、多稳态电路和无稳态电路。产生方波其实就是制造一个无稳态电路。 555定时器的引脚功能: 其中: DIS引脚与OUT脚电平一致 TRIG: 当此引脚电压降至1/3VCC(或由控制端决定的阈值电压)时输出端给出高电平。 THR:当此引脚电压升至2/3VCC(或由控制端决定的阈值电压

m0_47066484的博客 3万+

git强制恢复到之前某个版本

三步走策略: 第一步: git log (查看版本hash号,找到要恢复的版本) 第二步: git reset --hard + 版本hash号 ( 强制回退) 第三步: git push -f (强制push) 我有强迫症,在这几步之前通常会疯狂pull ...

迁柏进阶之路 966

保姆级教程:用Zemax 18.9复现单模光纤耦合仿真(附康宁SMF-28e参数)

本文提供了一份详细的Zemax 18.9单模光纤耦合仿真教程,以康宁SMF-28e为例,涵盖从软件设置、材料参数输入到系统构建和优化的全流程。通过光束耦合分析和物理光学传播(POP)技术,帮助用户准确模拟光纤耦合效率,并解决常见问题,适用于光学设计初学者和专业人士。

weixin_27330481的博客 316

SAP FICO 科目余额查询表开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)

SAP FICO 科目余额查询表开发说明书(包括开发源代码、测试样例)

我好像病了的博客 1041

git 常用命令

目前由于项目需要,了解了一些基本的git命令 1、首先是GIt强制pull ; git强制更新 git fetch --all git reset --hard origin/master git pull 2、ubuntu系统有多个git账号,如何同时正常使用两个账号 由于自己的git账号和目前公司的账号不一致,因此有此需求 首先是切换到~/.ssh/目录下,执行下面命令: 在此目录下新建config :touch config 执行命令:v...

lingdukafeibj的博客 7305

EPLAN中2D安装板的绘制方法示例

EPLAN中2D安装板的绘制方法示例

Robot_PLC_HMI_Automation 3223

Git reset 之后 怎么恢复到 reset 之前的节点

Git reset 之后 怎么恢复到 reset 之前的节点 首先定位到 工程目录\ .git\logs\refs\heads 这里会显示本地对应的分支名字(master、 dev 等等) 然后找到你 reset 的分支名字, 比如 master 用 notepad++ 获取其他编辑器打开这个文件 0000000000000000000000000000000000000000 9e6a4411ffa8b857680d923916ae329795a27e39 username email 时

103style 4367

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Git系列之Git Reset

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的Git Reset是git中最常用的命令,但也是最危险,最容易被误用的命令。<commit><commit><mode>. If<mode>--mixed. The<mode>该格式的“git reset”重置当前的head到commit,可能更新索引(重置到commit树),工作树(工作目录)取决于模式mode。如果模式省去,则默认为mixed模式。模式必须是以下几种。

云纳星辰怀自在 1272

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

git reset 3种方式

git reset命令有3种方式: 1、git reset --mixed: 此为默认方式,等同于不带任何参数的git reset。 2、git reset --soft: 回退到某个版本,只回退了commit的信息,如果还要提交,直接commit即可(修改的内容变成未add的状态),索引(暂存区)和工作目录的内容是不变的,在三个命令中对现有版本库状态改动最小。 3、git reset ...

qinwenjng120的博客 4万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

一、 在git操作中,有时候,进行了错误的提交,但是还没有push到远程分支,想要撤销本次提交,可以使用git reset –-soft/hard命令。 1、二者区别: git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可; git reset -–hard:彻底回退到某个版本,本地的源码也会变为上...

GarfieldEr007的专栏 3091

【git reset】我终于真正理解了 git reset

Git Reset 的本质与边界:何时该用,何时不该用 Git reset 常被视为危险命令,但关键在于理解其作用原理。Git 存在三个层次:提交历史、暂存区和工作区。reset 的本质是移动 HEAD 指针,并根据三种模式(--soft/--mixed/--hard)决定是否同步暂存区和工作区。 --soft 保留改动到暂存区,适合修改提交信息;--mixed(默认)保留改动但需重新 add,适合拆分提交;--hard 彻底删除改动,适合放弃实验性代码。 使用边界在于是否影响协作: ✅ 个人分支最新提交可

Rabbit_QL的博客 969

git reset HEAD 与 git reset --hard HEAD的区别

感谢原文作者:天地逍遥 原文链接:https://www.jianshu.com/p/aeb50b94e6c0 git reset HEAD 是将咱暂存区和HEAD的提交保持一致 git reset --hard HEAD 是将工作区、暂存取和HEAD保持一致 测试 git reset HEAD 创建一个readme.md 的文件 创建一个commit 执行以下命令 git add ...

Jason的学习笔记 2万+

git reset

git reset 将当前 HEAD 重置为指定状态,可用于版本回退。可将分支重设(reset)到指定的<commit>,如果不显示指定 commit,默认是 HEAD,即最近一次提交。比如我们 commit 后,可能发现这次 commit 的内容有错误,那么有两种处理方法:(1)修改错误内容,再次 commit。(2)使用 git reset 撤销这一次错误的 commit。

Doublelv 的博客专栏。 932

git reset 和 git rebase

git reset和git rebase是 Git 中两个重要的版本控制命令,但它们的作用和工作方式完全不同。:撤销提交,移动HEAD指针到指定的提交记录(丢弃后续提交)。

song854601134的博客 478

git add 和 git reset

git add 和 git reset牵扯到很多对.git目录下文件的修改和操作,从大体上讲,这两个操作是互逆的。想要搞懂它们之间的关系和互逆性,就先要搞懂这两个操作的底层操作。使用$ git add –help查看git的具体含义。git-add - Add file contents to the index ----意为将文件内容添加到索引。如果这个文件已经有索引了,add还有一层意思,如果

lyjshen的专栏 2966

git reset 命令

git reset 命令

xiaozhi 769

git reset vs git revert

git reset vs git revert

太阳与星辰的博客 905

git reset 命令详解 git revert命令详解。

git reset 是代码回退到某一版本,git revert 是代码将某一次提交的代码改动回退掉(新建一个commit记录进行回退)。 在git的这些命令中git reset是最长常用的,也是最危险的最容易被误用的。它的主要参数是:soft,mixed,hard它们告诉git,当执行reset是,要对index和working copy做什么。

wangdawei_的博客 1万+

彻底搞懂 Git 的两大家族:git reset 与 git restore

这篇技术博客深入浅出地解析了 Git 的核心流转机制与撤销哲学。文章首先通过“海外跨国电商”的生动比喻,将抽象的**工作区、暂存区、版本库和远端库**具象化为车间、卡车、档案馆与总部,清晰梳理了代码在四大空间的正反向流转。随后,文章为被严重误解的 `git add` 正名,揭示了其记录新添、修改、删除和解冲突四种“状态变动”的底层本质,并以此拆解了 `git commit -am` 漏掉新文件的陷阱。最后,博客详细阐述了新版 Git 将 `git reset`(历史时空倒流)与 `git restore`(

greenspan的专栏 506
上一篇: 设计模式-观察者模式2
下一篇: 分布式架构-CAP
ADCQprogrammer
博客等级 码龄7年 4粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值