✅ 完整命令顺序:
# 1️⃣ 本地回退到 git add 状态,保留代码改动和暂存区状态
git reset --soft HEAD~1
# 2️⃣ 强制把远程分支回退到 push 前的 commit
git push origin <目标 commit 哈希>:<你的分支名> --force
# 例如:
git push origin b147da4e5adc2935029748ed879d1443d65cc050:main --force
📌 解释说明:
| 步骤 | 命令 | 含义 |
|---|---|---|
| 第一步 | git reset --soft HEAD~1 | 撤销最近一次提交,代码和暂存区(已 add 的文件)不变 |
| 第二步 | git push origin 哈希:分支名 --force | 将远程分支强制回退到你指定的提交(上一次 push 前的 commit 哈希) |
🧠 tips:
-
查找目标提交哈希的方法:
git log origin/<你的分支名> -
--soft是关键,它不会丢失代码改动,也不会清空暂存区。 -
--force是为了覆盖远程历史,请谨慎操作,确保不会影响他人。