一文看懂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之间的区别。在实际开发中,选择合适的命令可以避免不必要的麻烦,确保代码库的整洁和安全。
热门推荐
秦始皇的修仙梦:从神话到现实
内丹术修炼:道教的成仙秘籍
拼多多再曝食品抽检不合格!冰鲜大西鲑鱼微生物污染引关注
西他列汀和什么药联用?最佳服用方法是?
周末打卡:上海三大美食街,云南路、昌里路、黄河路必吃攻略!
云南路美食街:老上海的味道与新生
2024年最新网速提升秘籍,让你办公飞起!
路由器升级+Wi-Fi信号优化:让家里的网速飞起来!
溺水自救与互救,这些你必须懂!
教育部发布“中小学生防溺水‘六不’原则”
海南人年初一吃斋:一个传承千年的健康习俗
海南斋菜煲:一道承载美好寓意的传统素食
年初一吃斋:从传统到创新的味觉之旅
读书笔记 | 祖荫下:传统中国的亲属关系、人格和社会流动
揭秘眼睛闪光与视雪症:两种常见视觉异常的真相
眼科主任推荐:日常护眼小妙招
长时间看屏幕?教你缓解眼睛闪光!
处女座职场大揭秘:时装设计师or会计?
从心理学角度看谢耳朵的处女座性格
处女座恋爱指南:如何赢得处女心?
揭开“鬼压床”的神秘面纱:频繁发生务必就医
揭开“鬼压床”的神秘面纱:频繁发生务必就医
重庆唯一的5A古镇,拥有世界第一长风雨廊桥,却少有人知
《凡人修仙传》:现代修仙界的巅峰之作
道教修炼四重境界揭秘:从凡人到仙人的蜕变之路
秦始皇的修仙梦:真相揭秘
横梁压床最佳补救方法
巨蟹座2025:用饮食调节守护你的健康
巨蟹座的月亮守护星:温柔体贴的秘密
巨蟹座的心理学秘密:解码敏感与温柔的双重奏