一文看懂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之间的区别。在实际开发中,选择合适的命令可以避免不必要的麻烦,确保代码库的整洁和安全。
热门推荐
京广高铁票价调整背后的经济学逻辑
宝兰高铁:技术创新与性价比的完美融合
推动科技创新力向产业竞争力转化
英语中“心得、感想、想法”的多种表达方式
预制菜真的健康吗?
乔治-华盛顿:美国的开国元勋与首任总统
盘点各地春节习俗,传统文化民间传承,哪一个最具年味?
猫咪耳朵清洁与护理指南:正确方法和注意事项
春节美容三件套:美甲美睫美发大揭秘!
春节熬夜党必看!美容护肤小窍门
做出美味的烤鸭真的不简单,解密烤鸭的配方与制作关键
春节带娃去亚龙湾,超全亲子游攻略!
海口火山口公园亲子科普探险攻略
海口亲子游打卡:博物馆+艺术村+红树林
《战地模拟器》:镭射模式+士兵控制,你就是战场MVP!
《战地模拟器》玩家必玩:6款刺激射击手游推荐
从农家妇到“网红姥姥”:潘姥姥的美食人生
秋季养胃新选择:摩罗丹配合茶疗调理
秋冬养胃新宠:刘维忠力荐蒲公英茶
陈小春首次登春晚:从意外剧透到经典演绎
陈小春经典角色盘点:山鸡与韦小宝谁更深入人心?
陈小春版韦小宝:经典中的经典
陈小春银发照引热议:从“山鸡哥”到银发大叔,他用幸福重新定义魅力
实施医保统筹后,看病开药哪个机构报销更划算?你怎么看?
从神将到魔君:卯日星官的神话演变
秋冬养生神器:黄芪水,你喝对了吗?
甘肃黄芪:栽培秘籍大揭秘!
战地模拟器:正版与盗版谁更香?
教你辨别《战地模拟器》真假:从特征到购买指南
四年级写作技巧:如何用动作描写展现人物内心情感