一文看懂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之间的区别。在实际开发中,选择合适的命令可以避免不必要的麻烦,确保代码库的整洁和安全。
热门推荐
缺血性脑白质病变:病因、症状与防治指南
旅游经济新引擎:2025年国内旅游市场现状及前景深度剖析
2025年中国旅游产业政策环境及发展趋势分析
碗里蒸米饭放多少水?为什么水量很重要?!
肚子痛的缓解方法小孩
专家建议:腹部淋巴结炎患儿的饮食指南
茵陈蒿汤经典医案、方论
天然排毒草药和排毒茶草药:清洁和恢复活力的指南
Excel单元格格式怎么改成数值
Excel自动计算公式:从基础到实战应用
大腿内侧持续麻木感的可能原因及建议
混动车要交购置税吗?一文读懂相关政策要点
国际开发协会助力编织全球社会保护网
i3、i5、i7集成显卡性能对比与评价
癫痫(俗称羊角风)患者应避免哪些刺激因素
《万民长歌:三国》Steam页面上线,历史战争策略游戏推荐配置2060s显卡
澳大利亚研究团队开发花粉耐热筛选新技术,助力小麦耐热品种培育
深夜过江,不再是一道难题!记者直击复兴东路隧道开启“夜间模式”
上海首条夜间可通行电动自行车的越江隧道本周日启用,有何改变?
5G可插卡随身WiFi技术解析
一等功是什么概念,一等功臣享受什么待遇
柳传志近五年来首次公开露面,释放了什么信号?
美国加州交税标准深入解析:个税、企业税与房地产税全覆盖
戒烟1个月后有哪些症状
为什么开车上高速就感觉不舒服?这些高速行驶错觉你遇到过吗?
普洱茶适合泡着喝,还是煮着喝?
鲸鱼排泄物龙涎香:为啥拉出来的比黄金还贵?人工的却臭得不行?
汉、唐、清三朝,疆域面积最广的时期都只有几十年
530到580分的文科大学排名表(2025届考生查看)
李世民的血统之谜:汉族与鲜卑族的融合