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 强制回滚
相关推荐
凯尔萨厮24 分钟前
Git(学习笔记)
笔记·git·学习
一技安身3 小时前
【Git】零基础入门实战教程(Windows 完整版,适配竞赛仓库)
windows·git
LXY_BUAA5 小时前
Git_在飞牛中部署 GitLab_20260817
git·gitlab
阳墨余7 小时前
Git 同时管理 Gitee 和 GitHub 的 SSH 配置实战
git·gitee·github
fengyehongWorld15 小时前
Git 认证凭据管理
git
暮云星影1 天前
git版本发布
git·gitee·github·gitea
乌夷1 天前
Git Flow 分支模型
git
独隅1 天前
VS Code Git 工作树多分支并行开发实战评测
git
暮云星影1 天前
git仓库分支管理
git·gitee·github·gitea
互联网中的一颗神经元2 天前
ZZ — Git 速查表
大数据·git·elasticsearch