- 强制推送会覆盖远程仓库历史记录!
- 建议在私有分支或个人项目操作
+ 公共仓库建议优先使用 git revert 保留提交历史
a1b2c3d...
)git log --oneline --graph
# 空格翻页 | q 退出 | / 搜索
# 强制回退(丢失未提交修改)
git reset --hard <commit-id>
# 安全回退(保留工作区)
git reset --soft <commit-id>
git push -f origin HEAD:main # 临时推送
git push -f -u origin main # 建立关联
特性 | HEAD:main |
-u main |
---|---|---|
推送目标 | 本地HEAD → 远程main | 当前分支 → 远程main |
上游设置 | ❌ 不设置 | ✅ 自动关联 |
后续操作 | 需指定分支 | 可直接git push |
典型场景 | 紧急修复 | 首次关联/长期维护 |
# 在feature分支推送至main(不改变关联)
git push -f origin HEAD:main
# 建立分支映射关系
git push -f -u origin main
# 组合命令(推荐)
git push -f -u origin HEAD:main
git reflog # 查看操作历史
git reset --hard HEAD@{n} # 回退到指定节点
git revert <commit-id> # 生成反向提交
git push # 常规推送
git pull --all
git branch -vv # 查看分支关联
git remote show origin # 验证远程配置
操作提示:
git reset
+push -f
= 个人分支历史清理
git revert
= 团队协作安全回滚方案