<

/

>

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 即可恢复。

© 2019-2026 Kaz. All rights reserved.