当前位置: 首页 > news >正文

Git 中复原 revert 和重设 reset 有什么区别?

回答重点

Git 中的 revert 和 reset 都是用于撤销更改的命令,但它们的用法和效果有所不同。

1) Git revert :通过创建一个新的提交来撤销某个特定的已存在的提交。这意味着代码库的历史会保留,而且之前的提交记录不会被删除,只是增加了一个新的提交来抵消以前的更改。使用方式: git revert <commit>

2) Git reset :改变当前分支的 HEAD 指针的位置,有三种模式:

  • --soft :只是移动 HEAD 指针,不改变工作目录和暂存区。
  • --mixed (默认):移动 HEAD 指针,并重置暂存区到指定的提交,但保留工作目录的更改。
  • --hard :移动 HEAD 指针,并重置暂存区以及工作目录到指定的提交,所有未提交的更改都会丢失。 使用方式: git reset [--soft | --mixed | --hard] <commit>

扩展知识

1) 应用场景

  • Git revert 适合用在已经共享了的公共分支(例如主分支),因为它不会改变提交历史记录,别的开发者可以拉取这些变更,不会产生冲突。
  • Git reset 更适合用在本地分支或临时分支,尤其是在提交了错误的更改后立即修正的场景,因为它可以彻底“擦掉”错误的提交记录。

2) 潜在风险

  • 使用 git reset --hard 要非常谨慎,因为它会丢失所有未提交的更改,可能造成不可恢复的数据丢失。
  • 使用 git reset 改变提交历史记录后,推送到远程仓库可能会导致团队其他成员的工作变得复杂,因为他们也需要手动同步这样的变更。

3) 解决冲突 :理解 git reset 可能导致的同步问题,引导同事同步改变后的历史记录,常见方法包括 pull --rebase 或者 rebase -i 来进行交互式变基。

4) 实际场景举例

  • 假设你在主分支进行了错误的提交,比如提交 ID 是 abc123
    • 使用 git revert abc123 会生成一个新的提交,比如 def456 ,这个新的提交将把 abc123 的更改反向操作。
    • 使用 git reset --hard abc123^ 则会直接删除 abc123 及之后的所有提交,把主分支重置为 abc123 之前的状态。

5) 高级用法

  • git revert 可以接受多个提交,甚至可以是一个范围的提交,它会逐一对每个提交操作生成反向提交。
  • git reset 的高级用法还包括使用路径参数,如 git reset HEAD file.txt ,只重置单个文件的状态。
http://www.lryc.cn/news/604949.html

相关文章:

  • 认识ansible(入门)
  • uni-app,uni.navigateTo
  • 赵义弘-----补题报告
  • 开源项目:排序算法的多种实现方式
  • vue3 实现下载指令
  • 【通识】操作系统
  • Python 程序设计讲义(45):组合数据类型——集合类型:集合的常用操作
  • jni理解
  • 网络编程-(网络计算机和网络通信)
  • Adobe Illustrator安装下载教程(附安装包)Illustrator2025
  • 【异世界历险之数据结构世界(冒泡、选择、快速排序)】
  • 数据结构(7)单链表算法题OVA
  • LLM 模型部署难题的技术突破:从轻量化到分布式推理的全栈解决方案
  • 【数据结构初阶】--二叉树(五)
  • 数据结构——单链表1
  • jmeter读取上游接口并遍历数组数据并进行压测
  • Vulnhub靶场:ica1
  • 【网络运维】 Linux:使用 Cockpit 管理服务器
  • IO复用实现并发服务器
  • 2025年7月技术问答第6期
  • 无人机入门--个人笔记
  • 电力设施通道防外破防异物实时监控预警装置的核心功能是什么
  • C 语言与 C++、Java、Python 等编程语言的区别
  • 国产音频DA转换芯片DP7361支持192K六通道24位DA转换器
  • Android RTMP推送|轻量级RTSP服务同屏实践:屏幕+音频+录像全链路落地方案
  • 工业计算机ARM-如何实现工业数字化升级EC100!
  • 论文阅读|NeurIPS 2024|Mamba进一步研究|MSVMamba
  • 原生微信小程序实现语音转文字搜索---同声传译
  • NAT技术与代理服务
  • SNR-Aware Low-light Image Enhancement 论文阅读