Best Practices

安全 force push 协议

需要重写历史时,用明确告警、冻结窗口和 `--force-with-lease` 协议降低误覆盖协作者提交的风险。

适合谁看
  • 希望把 Git 用得更稳的个人或团队
  • 准备建立协作规范的维护者
前置知识
  • 至少有一次真实协作经验
  • 知道常见命令但还没形成稳定习惯
常见风险
  • 把建议当硬规则而忽略上下文
  • 只记流程,不理解背后的协作边界

force push 不是绝对禁止,而是必须进入团队协议管理。

协议最小要素

  1. 仅允许在明确范围分支执行
  2. 执行前发出冻结提醒
  3. 默认使用 --force-with-lease
  4. 执行后发布恢复指引
安全 Force-push 协议安全的 force-push 不是不用,而是在严格的先验条件下使用。
强制先验
确认没有人基于当前分支创建备份使用 --force-with-lease
安全结果
不覆盖他人工作可恢复团队可同步
--force-with-lease 是 force-push 的安全版本,它会检查远程是否与预期一致。

推荐执行顺序

git fetch origin
git log --oneline --graph --decorate -20
git push --force-with-lease origin <branch>

为什么必须用 lease

--force-with-lease 会检测远端是否出现你未知的新提交,能避免覆盖同事刚推送的改动。

共享主线尽量不做 force push

对多人协作主线做强推,恢复和沟通成本通常远高于一次历史整洁收益。

常见误区

  • --force 当成“快速修正键”
  • 没有提前告知受影响协作者
  • 强推后不给恢复命令和对齐窗口

接下来建议继续看什么

  1. shared history boundaries
  2. assess force-push impact
  3. review and safe push