git revert回退问题

为什么2.py不见了

看你的日志:

复制代码
7f66933 (HEAD -> master) Revert "2222add"   ←刚刚执行完的revert
c87b0e5 Reapply "111"
10f4dd0 Revert "111"
827cc18 2222add        ← HEAD~2 就是这个提交!!这个提交做的动作:**新增2.py**

你执行:

bash 复制代码
git revert HEAD~2

👉 HEAD~2 指向 827cc18(2222add),这个提交的改动就是创建了2.py

git revert 的逻辑:把该提交做过的改动反向抵消

原来提交:新增2.py

revert反向操作:删除2.py

所以磁盘上2.py直接被删掉。

复制代码
[master 7f66933] Revert "2222add"
 1 file changed, 6 deletions(-)
 delete mode 100644 2.py

日志已经写清楚:delete mode 100644 2.py,代表本次revert提交把2.py删除。

关键点再巩固

📌git revert 某个commit撤销这个commit引入的修改,不是跳到这个commit的快照!

想把2.py找回来(两种方式)

方式1:再次revert当前HEAD(撤销刚刚的revert提交)

bash 复制代码
git revert --no-edit HEAD

会生成新提交,把删除2.py这个操作抵消掉,2.py恢复回来。

方式2:直接从旧提交把2.py拿出来,不改动分支

bash 复制代码
git restore --source=827cc18 2.py

827cc18版本的2.py检出到工作区,不生成commit。

梳理你整条提交链行为

复制代码
02e4d81 111
3b6ddc9 2222
7af11c5 111
827cc18 2222add    ✨这里新增2.py
10f4dd0 Revert "111"
c87b0e5 Reapply "111"
7f66933 Revert "2222add" ✨撤销827cc18,删掉2.py

容易踩坑点

很多人会误解:

❌误以为 git revert HEAD~2 → 回到HEAD~2那个版本快照

✅真实:git revert HEAD~2只抵消HEAD~2那一笔提交的修改,其余提交全部保留

对比reset:

bash 复制代码
git reset --hard HEAD~2
# reset:直接把指针挪回去,删掉后面全部提交。

revert:历史越来越长,新增反向补丁;reset:移动指针,剪掉后面提交。

现在你的仓库状态干净,可以继续测试。执行git status看,没有冲突。

相关推荐
qq_252941316814 分钟前
建筑物缺陷目标检测数据集 | 建筑裂缝检测 房屋缺陷 结构损伤 目标检测9022期
人工智能·yolo·目标检测·计算机视觉·视觉检测·建筑裂缝·建筑外立面
啥都想学点的研究生16 分钟前
一篇文章讲清楚:超参数的选择方法——交叉验证和网格搜索
人工智能·深度学习·机器学习
鱼很腾apoc18 分钟前
【Linux】第13期 详解应用层协议HTTP+Cookie/Session+HTTPS
linux·服务器·c++·学习·http·https
DS随心转小程序22 分钟前
Gemini只能导出了一部分Word文档,很少的一部分,不是我这个窗口所有的对话内容?
开发语言·人工智能·c#·word·豆包·deepseek·ai导出鸭
用户12026878638622 分钟前
我用 AI 造 App(五):推翻 AI 的建议,自研一个 HealthKit 插件
人工智能
江畔柳前堤23 分钟前
消息队列:从直觉到精通的完整认知地图
开发语言·人工智能·算法·机器学习·ruby on rails·scala
腾讯云大数据25 分钟前
腾讯云大数据接入 WorkBuddy:为 Agent 平台引入 Data+AI 专业智能体
大数据·人工智能·云计算·腾讯云
蒲公英内测分发26 分钟前
运动相机卖到海外,配套 App 没上架当地应用商店,用户怎么安装?
人工智能·数码相机·测试工具·智能硬件·web app
格林威31 分钟前
C# 相机图像配合频闪光源:实现高速稳定拍摄的几个方法
开发语言·网络·人工智能·数码相机·计算机视觉·c#·视觉检测