Git学习:各阶段回退方法

git commit三种回退的方式 当我们第一次提交后,发现还有修改没有提交,通常我们想的是在add/commit一次,这样存在的问题呢就是会有一些扰乱我们的commit信息。其实我们两次提交内容的目的都是同一个,比如修改bug,第一次提交时忘了删除我们调试时留下的debugger。git reset --soft HEAD^之后, 工作区有修改未提交,最后一次提交的内容暂存区保存了下来。也没有了提交记录,工作区也没有代码。查看提交日志,只存在一次提交记录,信息也是显示的我们第二次提交的信息。回退,差异存在暂存区,也好用,不轻易删除代码。 阅读详情

一、问题背景

Git 是分布式的软件管理系统。在把一份代码完成之后发送到 “远程仓库”,可能中间还经历了不同的 “提交阶段”。 本文介绍的是在不同阶段下对应的回退方法。

二、解决方式

在Git中,一份代码可能处于不同的提交阶段。

一份新修改(或者创建的)文件处于 – 工作区。

当 git add 之后, 文件会从 工作区 移动到 暂存区。
当 git commit 之后, 文件会从 暂存区 移动到 本地仓库。
当 git push 之后,文件会从 本地仓库 移动到 远程仓库。

关系如图:

在这里插入图片描述

(图片来自 菜鸟教程)

1. 回退情况1:文件在工作区进行回退

这里指的是文件没有经过任何提交,仅仅只是保存。但是保存完之后发现需要回退一下代码。

此时可以使用 git checkout -- filename 进行回退。(危险动作,三思)

2. 回退情况2:文件在暂存区进行回退

这里指的是文件经过git add 指令之后进入了暂存区。

此时可以使用 git reset HEAD 指令将暂存区的文件回退到修改之前的状态。(危险动作,三思)

3. 回退情况3:文件在本地仓库进行回退

例如情况如下:

在这里插入图片描述

这里指的是文件经过git commit 指令之后进入了本地仓库。

此时可以使用 git log 查看本次提交之前的版本,并记住想要回退的版本的id。

然使用 git reset --hard commit_id (这里是 8c12) 指令将暂存区的文件回退到修改之前的状态。

4. 回退情况4:文件已经在远程仓库中

这里指的是文件经过git push 指令之后进入了远程仓库。

一种补救的方法就是修改错误的版本,push一个新的上去就行。

另一种和3类似,通过 git reset --hard commit_id 回退本地版本,然后把旧的版本重新push上去。然而,此时的问题就是此时本地的版本落后于远程的版本。因此直接再使用git push的话是失败的:

在这里插入图片描述

此时可以加上 -f 来强制推:git push - f

在这里插入图片描述

这样就可以了。

git实战技巧-本地刚做出的修改、暂存和提交如何进行撤销 例如,对readme.txt 进行内容修改,保存文件。3. Hard:回滚到指定版本时,工作区内容会回滚到指定版本,暂存也会被清空(慎重,未提交的代码有丢失风险)1. Soft:回滚代码到指定版本时,工作区文件不会做改变,相较于指定版本多出的更新将会被暂存等待提交。4. Keep:回滚到指定版本时,工作区内容会回滚到指定版本,暂存区未提交内容会保存。1. 代码如果仅仅是回撤到指定版本,该版本之上的更新是不需要的,选择Hard模式。2. 代码回撤到指定版本时,需要保存该版本之上的更新,可以选择Soft模式。 阅读详情

相关推荐

git回退commit

在Git中回退提交(commit)主要有两种方法:使用 `git reset` 或 `git revert`,具体取决于是否需要保留提交历史或是否已推送到远程仓库。3. 恢复误操作:若误用 `git reset`,可通过 `git reflog` 找回丢失的提交。`git reset` 会移动分支的 HEAD 指针到指定提交,可选择是否保留修改。• `--mixed`(默认):保留修改内容到工作区(unstaged)。• `--soft`:保留修改内容到暂存区(stage)。回退到上一个提交(保留修改)

不务正业的猿 4476

git 回退的三种方式

1、git reset --mixed 版本号 :此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息 2、git reset --soft 版本号:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可 3、git reset --hard 版本号:彻底回退到某个版本,本地的源码也会变为上一个版本的内容 ...

bai_ye_的博客 3万+

Java后端入职第四天,就被要求代码回退(Git回退实战)

初入职场,错误把工程add了到了暂存区,比如一些本地配置,本来就不应该提交的,又或者,开发中只提交部分代码,又想最新的提交合并到上一次提交,等等,很多种场景,对于新手开发是不是不知所措呢?本文就是给各位初入职场的同学们讲一下如何代码Git回退/回滚,让同学们对代码Git回退/回滚不在恐惧。

qi_ming88的博客 4423

Git版本回退的两种方式及回退方式推荐

文章目录综述背景说明查看提交历史1 格式化2 筛选检索3 最近提交版本回退1 `reset`方法回退2 `revert`方法回退恢复回退 综述 本文档主要用于详细说明如何使用Git进行版本回退,主要包含四个方面: 背景说明 查看提交历史 版本回退 恢复回退 背景说明 在使用git版本控制进行开发的过程中,我们有时会出现错误提交的情况,存在误提交的时候怎么办呢?,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:reset复位、revert恢复。 查看提交历史 在提交了若干更新,

让编程改变世界 2万+

Android应用加固脱壳实战:从爱加密原理到Frida内存Dump与修复

在移动应用安全领域,代码加固与动态加载是保护核心逻辑的关键技术。其原理在于通过修改应用启动流程,将原始DEX加密隐藏,并注入包含解密逻辑的壳DEX,实现运行时动态加载。这项技术的核心价值在于防止应用被逆向分析、二次打包或恶意篡改,广泛应用于金融、游戏等高安全要求场景。对于安全研究、漏洞挖掘或历史版本审计,掌握脱壳技能至关重要。本文聚焦于**爱加密**等主流加固方案,深入探讨如何利用**Frida**框架在内存中精准捕获解密后的DEX数据,并解决脱壳后常见的签名校验等运行问题,提供一套从原理到实践的完整攻防思

weixin_28716443的博客 490

IC版图设计之OASIS文件格式详解

OASIS(Open Artwork System Interchange Standard)是继GDSII之后新一代的集成电路版图数据交换标准,由SEMI在2004年正式发布(SEMI标准号:SEMI P39)。高压缩率:相比GDSII可减少3-10倍文件体积扩展性强:支持纳米级工艺的复杂图形描述跨平台兼容:独立于EDA工具和操作系统安全增强:内置校验和与加密支持。

ZZcppc的博客 2448

git各阶段版本回退命令

git

qq_23350817的博客 7057

【计算机图形学】Pov-Ray画的垃圾小车

效果: 代码: #include "colors.inc" #include "metals.inc" #include "glass.inc" //相机 //这个位置车子刚好落在草地上了 camera { location direction z*1.5 right x*image_width/image_height look_at

lishichengyan的博客 1749

git入门:git 各阶段版本回退命令

在日常开发过程中,会遇到这种情况:在工作区更改了代码,但想起来有地方写错了,不想要工作区的代码了,回退到之前版本,使用命令:示例:不小心删除了main.cpp文件,使用该命令,又回来了 如果是在 git add 即提交到暂存区后发现有错误,想取消对暂存区的修改,使用命令:示例:不小心删除了main.cpp文件,并且提交到了暂存区如果自己的代码错误在提交到本地仓库后才知道,那么可使用下面命令回退:示例:对main.cpp做出了更改,且提交到了本地仓库使用git log查看日志,commit 后面跟的就是id值

Sauron7i的博客 3732

Android 12.0 系统开机设置默认横屏显示

在12.0的系统产品开发中,对于产品需求来说,由于是宽屏设备所以产品需要开机默认横屏显示,开机横屏显示这就需要从两部分来实现,一部分是开机动画横屏显示,另一部分是系统显示横屏显示,从这两方面就可以做到开机默认横屏显示了。

安卓兼职framework和app工程师的博客 3743

【TCAD】AlGaN 器件的Sentaurus仿真

否则,必须在 LatticeParameters Sentaurus Device 的参数文件中的部分。Sentaurus Device 有两个工具实例:第一个工具实例, sd_fdiv ,模拟正向偏置特性,第二个工具实例, sd_rviv ,模拟反向偏置特性直至击穿。对于牛顿求解器,通常应该将非线性迭代次数限制为一个足够小的值,例如 Iterations=20 ,同时通过指定非阻尼迭代次数高于允许的牛顿迭代次数来避免解的阻尼( NotDamped=30 )。晶胞中的 Ga-N 键为橙色。

荷塘阅色 1215

Git各阶段的代码修改回退、撤销等操作

Git代码回退操作指南 本文介绍了Git中三种不同场景的代码回退方法

2401_86112944的博客 746

配置 SAP Web Dispatcher 的实战指南:打通 SAP Fiori、SAP Gateway 与前端系统的关键一跳

SAP Web Dispatcher 在 Fiori 架构中扮演关键角色,作为统一入口处理 HTTPS 请求、实现安全代理和流量分发。它将分散在不同系统的访问路径统一收口,解决浏览器同源策略限制,集中管理 HTTPS 终止和客户端信息传递。典型配置中,Web Dispatcher 监听 443 端口,根据路径将 OData 请求转发至 Gateway 系统,静态资源请求送至前端服务器。SSL 相关配置(如 PSE 文件)确保安全通信,而路由规则(wdisp/system_xx)决定请求转发目标。实施时需注意

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 103

git checkout/git reset/git revert/git restore常用回退操作

经常会听到别人说,如果时光可以倒流,我将会如何如何,可是现阶段的科技还达不到时光倒流的目的,或许在《三体》世界的四维裂缝里可以试一下。现实的世界中找不到后悔药,但是在代码的世界里却可以轻松实现,错误的BUG修改、砍掉的做了一半的功能都可以轻松回退,不留一丝痕迹,回滚之后一切又可以重新开始了...

AlbertS Home of Technology 1万+

基于PyQt5和OpenCV的传统图像分割应用UI程序

主要功能包括:加载和显示图像应用多种图像分割算法调整算法参数保存处理结果。

Henry的博客 473

二维光子晶体禁带的遗传优化算法实现

二维光子晶体禁带的遗传优化算法MATLAB源代码 光子晶体中因周期性结构而存在的频率禁带称为光子禁带,光子禁带的存在是光子晶体具有广泛应用前景的重要原因。 禁带越大,可控光的频带也越宽,因此如何设计合适的晶体结构以获得大的光子禁带一直是研究和应用的重点与热点。 给大家讲解在平面波展开法的基础上,使用遗传算法寻找具有最大光子禁带的二维光子晶体结构。 %-------------------------------------------------------------------------- % Ph

m0_53407570的博客 583

349-git各阶段版本回退命令

123这3个阶段如何进行回退? workspace:工作区 index:暂存区 Repository:本地仓库 Remote:远程仓库 看上面的git log,每一次commit提交日志都生成一个commit id,如果修改刚提交的修改想回退,那么通过上面的commit id就可以(commit id不需要写全,前几位能区分不同的commit id就可以),命令如下: 实际上,上面的git reset --hard commit_id是把本地仓库分支版本上的HEAD指针进行了移动,实际上没有删除任何内容

Edward_LF的博客 920

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【Git版本控制器】第三弹——版本回退,撤销修改,删除文件

这篇讲的主要就是版本回退,回退到之前的版本。

路虽远,行则将至!事虽难,做则必成! 5682

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

用idea操作git缓存区回退、本地库回退、远程库回退

git的各种代码回退情况的总结

巴里巴气的博客 1087

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Git 本地操作进阶:版本回退、撤销修改与文件删除全攻略

在掌握Git本地仓库的基础操作后,“如何修正错误提交”“怎样找回误删文件”“版本回退的风险与应对”成为开发者进阶的关键课题。代码开发中,误改配置、提交冗余文件、删除核心代码等情况难以避免,而Git提供的**版本回退、撤销修改、文件删除**机制,正是解决这些问题的 **`“安全网”`** 。本文将聚焦这些进阶操作,拆解其原理、场景与实操细节,帮你在代码出现偏差时,精准、安全地将版本拉回正轨。

会当凌绝顶,一览众山小 3200

git reset代码回退

在使用git工具进行代码管理时,代码的回退时一项经常要做的事,没有人能一下就把代码改到一个字母都改不了,甚至在提交时会犯下重大错误,如何修补呢?在这个过程中,无论时在修改、添加(add)、提交(commit)还是推送(push)阶段都有不同的命令。

保持一颗永远好奇、勇于探索的心 2718

Git 回退操作详解:带示例的“小白”指南

本文介绍了Git回退操作,涵盖撤销未提交、已暂存与已提交等场景,并对reset、revert、reflog说明。通过checkout、reset --hard、push -f示例说明步骤与风险帮助开发者管理历史处理误操作,使协作更安全高效。

i89211的博客 7610

git checkout 切换分支和版本回退

1、分支切换 1.1基本 git checkout <branch> 切换分支 git checkout -b branch 新建分支并切换 相当于 git branch <newBranch > git checkout <newBranch> ps: 新建的本地分支是在当前分支的基础上拉取下来的 ,工作中,一般下载好工程,会自动创建master分支(现在github是main分支),其他远程分支可以通过git branch -a查看,然后git checkout

保持一颗永远好奇、勇于探索的心 1万+

Git add回退 & commit回退

Git add回退 & commit回退

Léon 8501

git各阶段代码修改回退撤销操作

git push origin master 的含义是将本地当前分支的提交推送到名为 origin 的远程仓库的 master 分支上。

qq_42120843的博客 1746
上一篇: 论文写作:word连续交叉引用
下一篇: Git学习:工作流学习实践
zsiming
博客等级 码龄7年 43粉丝 74原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值