一文看懂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之间的区别。在实际开发中,选择合适的命令可以避免不必要的麻烦,确保代码库的整洁和安全。
热门推荐
麻疹病例激增——这 6 张图表揭示了原因
认识糖尿病:原因、症状、诊断、预防
电机控制技术未来发展:创新突破与挑战并存
BJPsych Open :联合使用心理疗法和氯胺酮治疗精神障碍
浙大学者科普:太阳蕴藏着巨大的能量,我们如何利用
宇宙新窥镜——量子传感器:探索暗物质,揭开太空奥秘
资源为王!一文摸清我国各黄金矿业上市公司“黄金家底”
环保企业污泥脱水率优化:六西格玛在压滤机参数调整中的实践
厨房装修用瓷砖还是用整体墙板好?全面解析你的选择
一篇文章让你了解市场上Gore-Tex面料的种类和标签
英国男人的性格特征:从文化背景到社交风格的全面解析
开放RF卡口,佳能为什么放弃多年坚守?
油腻凉食惹胃痛?揭秘背后的健康警报与解决之道!
银行的金融科技应用的大数据在市场趋势分析中的应用?
Spring Boot+Vue餐饮外卖平台开发与设计网页端8【开题+程序+论文】
和氏璧:中国历史上的珍宝传奇
如何合理利用住房公积金并了解相关规定?这些规定在实际操作中如何落实?
云计算技术应用专业的求职者怎么写工作经验
Web前端设计学习指南:从入门到进阶的全方位攻略
微星3060ti配什么主板?Intel和AMD平台推荐
VMOS安装不了软件?这些问题排查指南请收好
平均成绩怎么算
空间、情感、文化:新疆文艺中的中华文化认同
佛山学位预警:户籍生激增,集体户或需统筹!
持证上路:健身教练证书成为告别私教的底气
魏晋南北朝时期的宫廷音乐和舞蹈是什么样的?
10 种令人毛骨悚然却又令人着迷的蜘蛛
小小蚁国最强区域战攻略:积分获取与奖励最大化技巧
深度学习入门指南:一篇文章全解
欧洲各国国旗为何如此相似?从历史渊源看三色旗的设计趣闻