Languages supported by the current page:
简体中文Git清除提交历史撤销已提交的敏感信息
Git
# Note
Word count 995
Approximately takes time 4 minutes
Mon, August 17, 2026 at 15:04:00 UTC
⚠️ 警告:此操作会改写提交历史,强制推送后远程仓库中指定提交之后的记录将永久消失。
仅建议在个人仓库或确认无人使用该分支时使用。多人协作请优先考虑git revert。
操作流程
1. 找到要回退到的提交 ID
在 GitHub Desktop 中查看历史记录,复制目标提交的 SHA。
或在终端查看最近提交:
git log --oneline -10
2. 硬回退到指定提交
git reset --hard <提交ID>
示例:
git reset --hard a1b2c3d
3. 确认回退结果
git log --oneline -5
git status
此时通常会看到类似提示:
Your branch is behind 'origin/main' by X commits, and can be fast-forwarded.
这说明本地已经回退,但远程还保留着旧的提交。
4. 强制推送到远程(覆盖历史)
推荐使用更安全的写法:
git push --force-with-lease
如果确定没问题,也可以直接:
git push --force
补充说明
--force-with-lease会检查远程是否有你本地不知道的新提交,比裸--force更安全。- 如果误操作想找回丢失的提交,可立即使用:
git reflog
找到对应记录后再次git reset --hard即可恢复。