一文看懂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
之间的区别。在实际开发中,选择合适的命令可以避免不必要的麻烦,确保代码库的整洁和安全。
热门推荐
停车位设计规范详解
如何在城市设计中合理安排路边停车空间
《黄帝内经》:一部受益终身的智慧养生宝典
【婴儿咳嗽药】选择婴儿咳嗽药的8个原则 婴儿咳嗽应分清类型
中英联合办展纪念“传奇飞人”李爱锐
2024各银行信用卡宽限期政策解读
北交所启动存量上市公司代码切换工作,248家新代码一览
如何正确处理打印机清洁单元(有效清洁打印机以提高工作效率与寿命)
追踪星辰:星座的演变
海外城市轨道交通市场分布与开发策略
肝腹水是否具有传染性?专家详解病因、症状与治疗
守护血透患者“生命线”:内瘘感染风险大,做好预防是关键!
幼儿园培养孩子自理能力三部曲,让幼儿更独立!
盘后大消息!国务院国资委发声
环保科普 | 节约用水你我他,爱水惜水靠大家
睡眠时间太长有什么危害
湖南防洪堤上“最牛违建”已拆除过半
国联水产行业分析
临床常用药物配伍变化
脱发了不要慌,6种方法帮你治(不是洗发水)
甜杏仁的功效与作用
2025年石油产业布局与国际市场波动分析:数据背后的市场信号
荀彧与曹操的决裂:理想与现实的冲突
三国乱世里,他是真正的王佐之才,却最终书写一曲忠魂悲歌
劳动者提前几天以书面形式通知用人单位
种罂粟喂家禽可防病?非法种植罂粟后果很严重,种植一棵也违法!
教你如何辨别罂粟:从苗到花的全面识别指南
牌照防盗螺丝如何顺利拆除?拆除后如何妥善处理螺丝?
八字里面有太极贵人怎么样?八字太极贵人的解释!
医院管理系统(HIS系统)的分类、特点、功能及维护