一文看懂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之间的区别。在实际开发中,选择合适的命令可以避免不必要的麻烦,确保代码库的整洁和安全。
热门推荐
火车站长途客运车站为何会发生踩踏事故?如何应对?
Nature子刊:坚持早餐8点前、晚餐8点后的饮食习惯有助于降低肥胖和糖尿病风险
吃晚餐竟有这些讲究,千万不能吃多了!如何才能避免晚餐吃多呢?
这些"健康食物"吃错了反伤身!千万别不当回事儿
中国首个跨境旅游合作区带来发展新动能
黄燕窝价格行情及影响因素分析
全面解析燕窝分级标准:从A级到顶级,如何鉴别与选购优质燕窝
驾考科目四常见问题解答!超全,考前速看!
库存车购买攻略:避开这些坑!
库存车 vs 新车:省钱还是省心?
库存车选购攻略:五大技巧教你轻松避坑
4S店购车防坑指南:如何避开库存车?
如何通过主题、角色和情节创作吸引人的小说作品
宠物定位器:让您的毛孩子不再迷路
缓解感冒症状偏方:喝温水再喝黑咖啡有用吗?营养师这样建议
日本核废水排放,国内海鲜还能安心吃吗?
韩国29吨核废液直排入海,海洋生态与邻国安全引担忧
失业期间如何保住医保?一文读懂政策要点
失业金领取与社保待遇:你关心的问题都在这里
5月泸沽湖旅游攻略:穿衣、气候、景点全解析
屈原:一位诗人的传奇人生与永恒精神
三峡工程下的屈原故里:古建筑的搬迁与文化传承
元旦打卡屈原故里和三峡大坝:文化与科技的双重之旅
苏州大学研发新型材料,核废水处理技术取得重大突破
福岛核污染水排海:人体健康风险几何?
福岛核废水放射性成分揭秘:从处理技术到国际争议
福岛核污染水排海一周年:最新进展与国际反应
双十一家庭购物攻略:让购物成为增进亲子关系的桥梁
家庭关系改善,心理健康UP UP!
狗狗走失怎么办?这份实用寻犬攻略请收好