Git 远程分支强制覆盖本地


Git 远程分支强制覆盖本地

适用场景

  • 本地代码混乱,需要完全同步远程
  • 本地提交错误,想丢弃所有未推送内容
  • 本地分支崩坏,强制对齐远程

推荐命令(安全分步)

main 替换为实际分支名。

1
2
3
4
5
6
7
8
9
10
11
# 1. 切到目标分支
git checkout main

# 2. 拉取远程最新(不合并、不动本地)
git fetch origin

# 3. 硬重置到远程分支
git reset --hard origin/main

# 4. 可选:清理未跟踪文件
git clean -fd

极简一行

1
git fetch origin && git reset --hard origin/main && git clean -fd

命令说明

命令 作用
git fetch origin 拉取远程信息,不改动本地
git reset --hard 硬重置:丢弃所有本地修改和未推送提交
git clean -fd 删除未跟踪文件和目录

⚠️ 不可逆警告

执行后永久丢失:

  1. 未提交的改动
  2. 已 commit 但未 push 的提交
  3. 工作区和暂存区所有内容

操作前务必备份重要文件。

什么时候不该用

  • 想保留本地改动并合并 → git pull
  • 想保留本地提交变基合并 → git rebase
  • 只想丢弃工作区改动(保留提交)→ git checkout .

常见报错

unknown revision or path → 先 git fetch origin

有冲突无法切换分支git stash 暂存后再操作


文章作者: 保健
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 保健 !
  目录