Git 远程分支强制覆盖本地
适用场景
- 本地代码混乱,需要完全同步远程
- 本地提交错误,想丢弃所有未推送内容
- 本地分支崩坏,强制对齐远程
推荐命令(安全分步)
将 main 替换为实际分支名。
1 | # 1. 切到目标分支 |
极简一行
1 | git fetch origin && git reset --hard origin/main && git clean -fd |
命令说明
| 命令 | 作用 |
|---|---|
git fetch origin |
拉取远程信息,不改动本地 |
git reset --hard |
硬重置:丢弃所有本地修改和未推送提交 |
git clean -fd |
删除未跟踪文件和目录 |
⚠️ 不可逆警告
执行后永久丢失:
- 未提交的改动
- 已 commit 但未 push 的提交
- 工作区和暂存区所有内容
操作前务必备份重要文件。
什么时候不该用
- 想保留本地改动并合并 →
git pull - 想保留本地提交变基合并 →
git rebase - 只想丢弃工作区改动(保留提交)→
git checkout .
常见报错
unknown revision or path → 先 git fetch origin
有冲突无法切换分支 → git stash 暂存后再操作