一文看懂git reset与git revert
创作时间:
作者:
@小白创作中心
一文看懂git reset与git revert
引用
CSDN
1.
https://m.blog.csdn.net/qq_44704740/article/details/145530854
Git是现代软件开发中不可或缺的版本控制系统,而git reset和git revert是两个常用的回滚代码的命令。虽然它们都能实现代码回滚的功能,但它们的工作原理和使用场景却大不相同。本文将通过一系列步骤来研究这两个命令,并分析它们之间的区别。
所有操作均在main分支进行。
步骤一:初始化提交
首先,我们创建一个简单的Git仓库,并进行三次提交:
- 初始化Git仓库
- 提交A
- 提交B
- 提交C
得到的结果如下:
步骤二:使用git reset
我们将提交回滚到A:
git reset 306e695 --hard
关于--hard参数的讨论放在文后。
执行上述命令后,得到的结果如下:
此时代码已经回滚到A,并且删除了B和C两个提交记录。
步骤三:撤销回滚
为了演示revert命令,我们需要将代码重新回滚到C:
git reset 95fdfd5 --hard
执行上述命令后,得到的结果如下:
此时最新提交回到了C。
步骤四:使用git revert
我们将代码回滚到A:
git revert 306e695
冲突产生了!!!
解决冲突后产生新的提交D
得到的结果如下:
此时最新提交走到了D,代码回滚到了A。
结论
git reset命令通常用于撤销上一次提交,回退到之前的版本,该命令会改变Git的历史记录。git revert命令会产生新的提交,并保留之前的提交历史记录。git reset通常在本地提交还未推送到远端仓库时使用,不产生新的提交,但会永久删除提交,有破坏性更新。git revert通常用于回滚包含远端仓库的提交,保留了历史提交记录,方便定位问题,比较安全。
补充说明
--soft:仅重置HEAD,保留所有文件更改在暂存区。--mixed:默认,重置HEAD和暂存区,保留文件更改在工作目录。--hard:重置HEAD、暂存区和工作目录,完全丢弃本地更改。- 撤销
git revert commitID的方法:git revert --abort。
通过上述步骤和分析,我们可以清晰地看到git reset和git revert之间的区别。在实际开发中,选择合适的命令可以避免不必要的麻烦,确保代码库的整洁和安全。
热门推荐
【以案说医】李惠林:柴胡加龙骨牡蛎汤加减治疗不寐
MaxEnt模型在物种分布模拟中的应用:从原理到实践
世界咖啡三大产区的风味特色 云南与印尼咖啡豆产区特点处理法介绍
Excel打印预览虚线不对怎么调整
司机需要承担刑事责任吗?交通事故中的法律责任分析
王莽改制:理想主义政策为何在汉代受挫
JS如何在一定范围内随机生成坐标
晚上一直咳不停?常見夜咳六大原因
深度剖析抗衰技术:认识自由基的奥秘(一)
购车减免政策如何影响汽车厂商的定价策略?
旅行者腹泻:外出时的常见问题与正确应对策略
KDJ指标源码参数修改详解:从基本概念到实战应用
PCB制造中的自动化与智能化应用
“嗯嗯,好哒,可以滴……”“文字讨好症”会让你慢慢社交疲惫
公积金贷款实用指南:额度、年限和维权全攻略
热处理4把火:淬火、回火、正火、退火,别再傻傻分不清了!
热处理四大工艺:淬火、回火、正火、退火详解
高邮咸鸭蛋为何如此出名?
啄木鸟家庭维修 万师傅 猫眼等入选4月全国数字生活十大典型投诉案例
走路、慢跑、骑行、太极拳、瑜伽和游泳:六种运动方式的全面对比
利息怎么算公式是什么
如何在Excel中插入和链接图片
中科院心理所“证书”被国务院点名整改,市面上这些心理咨询证书也需警惕
办公室摆葫芦有什么寓意?办公室摆放葫芦的讲究
港大开源GraphAgent: 破解结构化与非结构化数据融合的AI智能体
小学生小组合作学习的评价体系构建
提高执行力:确定力、拘束力、公定力和执行力的统一运用
虽然小众但优势明显!推荐 3 款既省油又耐用的柴油 SUV!
保障游客安全 安徽山岳型景区这样做
个人养老金开户缴存争夺升级:定存利率高达4%