一文看懂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之间的区别。在实际开发中,选择合适的命令可以避免不必要的麻烦,确保代码库的整洁和安全。
热门推荐
铝合金电缆的行业标准和安全规范解读
抗肿瘤药物有哪些?一文带你全面了解
图形管线 Graphics Pipeline(实时渲染管线)
理疗设备在疼痛管理中的应用
艾尔登法环剧情解析(经验分享:艾尔登法环剧情深度解析)
报考高中化学教师资格证的条件及考试科目概览:2024年全新解读
高考数学考试的三张草稿纸怎么用?
馒头放入冰箱冷冻会滋生黄曲霉素,吃了易致癌?了解一下再做决定
成都市工商联优化营商环境实现新突破
舌咽神经痛最好的治疗方法
Sample HTML5 Website
脑出血后半边麻木怎么办?医生详解急救与康复要点
列缺穴:位置、功效与临床应用详解
选购马歇尔音箱指南:多维度分析助你找到最佳选择
恩施味道:腊肉、合渣与土豆的美食之旅
电话变为来电提醒,对方已将电话呼转到来电提醒是什么意思
崩坏:星穹铁道新角色吉尔伽美什详解
口气重口臭怎么解决
今天的国际新闻:全球焦点话题大盘点
英特尔CPU驱动有必要更新吗?更新指南来了
游戏中的经典悲情反派:解析他们所承载的情感深度
身高155显高穿搭!9个技巧让你轻松穿出9头身超模比例
Win10蓝屏WHEA_UNCORRECTABLE_ERROR解决方法
茯苓皮的功效与作用
深入探讨零线与火线的电压现象及其安全隐患
完整指南:如何用英语写作文
一年级上册语文课本里的课文与生字(第五单元)电子版可打印
如何处理车辆交强险过期?过期后的处理方式有哪些差异?
中专毕业了想读大专怎么报?条件是什么?
牝鸡司晨的出处与读音解析