一文看懂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之间的区别。在实际开发中,选择合适的命令可以避免不必要的麻烦,确保代码库的整洁和安全。
热门推荐
社保缴满15年直接等退休?缴费15年和25年有啥区别
数字万用表(DMM)使用指南
公司法人缴纳房屋租赁费用的账务处理及相关法律规定
黄酒中焦糖色的使用方法与文化内涵
Kettle Pentaho监控与日志分析:确保系统稳定运行的实战技巧
数据护城河时代,AI为汽车营销带来新变化
服用苯磺酸氨氯地平片的副作用与哪些 服用降压药物“地平”导致水肿怎么办
最佳实践:深入理解线程池参数设置
三文鱼(Salmo salar)深入分析:全面解析及生态价值
你常吃的鲑鱼是哪一种?鲑鱼品种、鲑鱼营养一次看完!
选择板对板连接器的完全指南

什么是区域型仓库(Distribution Center )?
脉压差小于30有什么危害
原发性高血压一级患者如何合理用药?
人才管理的照片怎么拍好
劳动合同工人与员工的区别及权益保障
O型腿如何自我矫正?每天花个5分钟,或能轻松告别罗圈腿!
为啥说独生子女家庭的老人,晚年更幸福?心理学给出原因,很真实
如何分析利率差对黄金的影响机制?这种影响在不同市场环境下有何变化?
11月全球股市回顾:港股缩量震荡,美股创新高,A股成交破纪录
开证行拒付时必须根据什么为依据
电脑键盘快捷键不能用了?试试这几招,拯救失灵键盘
小米手机怎么开微信分身你知道吗?详细的微信分身多开教程
调色板设计入门
什么是遗产计算
“十五五”前瞻:石油与化工行业趋势解读,破局当下谋发展
全球五代机损失全记录,现役只有歼-20金身不破
瑞媒:移民无法根本解决欧盟人口问题
合同产生争议的解释顺序及其法律适用问题研究
如何做好文件翻译中的合同翻译?