Git 撤回提交完整方案

先区分两种场景

场景 1:提交只本地 commit,还没推到远程(你图里已经 push 上去了,不适用)

场景 2:已经 push 到远端 UAT 分支(你现在的情况,代码已经提交到 origin/uat)

分两种操作:软撤回(保留修改,改完重新提交) / 硬撤回(彻底删除本次提交记录,生产慎用)

先切到本地 uat 分支,拉取最新远端代码保证同步

复制代码
git checkout uat
git pull origin uat

方案 1:推荐 ------ 软重置(保留代码改动,最安全,UAT 环境首选)

只会撤销commit 记录,你修改的 yml 文件代码全部保留在本地,改完可以重新 commit 推送

  1. 先回滚本地 commit
bash 复制代码
# HEAD~1 代表撤回最近1次提交
git reset --soft HEAD~1
  • 此时文件处于待 add 状态,你可以修改 yml、删除不需要的改动
  • 重新提交、推送覆盖远端
bash 复制代码
git add .
git commit -m "修正安通订阅消息配置,撤回错误提交"
git push origin uat

方案 2:硬重置(彻底抹除提交记录,多人协作谨慎使用)

会直接删除本次提交的所有代码改动,本地文件直接变回提交前状态,多人共用分支会造成别人代码丢失,仅单人开发可用

bash 复制代码
# 本地硬回滚1次提交
git reset --hard HEAD~1
# 强制推送覆盖远端分支
git push origin uat --force-with-lease

不要直接用 git push -f--force-with-lease 会校验远端无他人新提交,更安全,避免覆盖同事代码。

方案 3:多人协作安全方案(不删除历史,新增一次反向提交)

如果 uat 分支多人在用,强制重置会导致别人本地代码冲突,优先用revert,新增一条 "撤回本次修改" 的提交,历史完整保留:

bash 复制代码
# 自动生成一条反向提交,抵消本次所有yml改动
git revert HEAD
# 推送到远端uat
git push origin uat

优点:Git 提交记录完整可追溯,不会破坏分支历史,团队协作标准操作; 缺点:提交记录会多一条 revert 日志。

  • 团队多人共用 uat 分支 → 执行 方案 3 git revert HEAD(最稳妥)
  • 只有你一个人操作 uat 分支,想彻底删掉这条提交记录 → 执行 方案 1 soft 重置
  • 确定不需要保留 yml 改动,单人分支 → 方案 2 hard 强制回滚
相关推荐
那年窗外下的雪.9 小时前
AIDC 学习日志|第 21 天|EVPN 多归属故障演练与中断窗口定位
网络·git·学习
玖石书12 小时前
Git Submodule 完全指南:从添加到日常维护的常规操作全流程
大数据·git·elasticsearch
微尘寒风15 小时前
git创建版本库
git
console.log('npc')1 天前
Git 冲突与 AI 协助指南
前端·人工智能·git·大模型
重生之我来学Python1 天前
Git-SVN 混合开发,从入门到精通!
开发语言·git·svn·github
笨笨饿1 天前
#137_死机恢复现场_Armino平台AP系统swd调试
git·python·stm32·单片机·嵌入式硬件·物联网·vim
King of fraud1 天前
Git 入门:从零开始的版本控制之旅
git
AI大模型-小华1 天前
Codex CLI第一次怎么用?从安装到读取本地项目完整教程
git·node.js·ai编程·开发工具·代码分析·codex·codex cli
2401_861678621 天前
Git 在 Windows 使用
windows·git·elasticsearch
青禾8372 天前
Git 与 SVN 完全指南:从集中式到分布式的版本控制
分布式·git·svn