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看,没有冲突。

相关推荐
自动化测试行业观察19 小时前
AI智能测试用例生成技术解析:多源融合+LLM混合生成方案与实践
自动化测试·人工智能·科技·测试用例·智能化测试·ai测试平台·ai智能遍历
zyseo819 小时前
谷歌SEO 内容更新焕新流程:让老页面重新起量
java·前端·javascript
Smoothcloud润云19 小时前
远程纳管GPU怎么安全升级?驱动、组件灰度与回滚实战
人工智能·深度学习·安全·gpu算力·gpu·数据库管理员
~城南花已开~19 小时前
Intel E810 SR-IOV VF Spoofcheck 防伪造测试-KVM3
服务器·网络·笔记·学习·ubuntu·etl工程师
萧瑟余晖19 小时前
Spring Data JDBC与R2DBC详解
java·后端·spring
≮傷£≯√19 小时前
OpenCV 边缘检测 Canny
人工智能·opencv·计算机视觉
杰克尼19 小时前
今日面试题总结
java·开发语言·人工智能·langchain
TMT星球19 小时前
“什么值得买”兴趣消费服务接入乐奇AI眼镜,开启“看见即搜索”新体验
人工智能
tellmewhoisi19 小时前
深度学习19:PyTorch:自动微分模块
人工智能·pytorch·深度学习
乌恩大侠19 小时前
Supermicro 发布六款 NVIDIA ARC 服务器:从 1U 边缘基站到 4U 八卡 AI-RAN 平台,全面对比
运维·服务器·人工智能