首页/开发/Git 与协作速查/公共分支不要改写历史
合并变基与冲突71 条

公共分支不要改写历史

在已推送并被他人拉取的分支上做变基,会让旧提交与重写后的提交并存,制造分叉与重复变更;公共分支只追加提交。

Git 与协作速查开发更新于 2026-10-12
原则公共分支(main/develop/release)只做追加式提交
私有分支可以变基、整理、强推
判断git branch -r --contains <提交> 看是否已有他人基线

检查是否有人基于你的分支

检查是否有人基于你的分支
git log --oneline origin/feature | head
git for-each-ref --contains <sha> --format='%(refname:short)'
变基已经发生的补救:让协作者用 git pull --rebase 处理,或尽快合并并停止继续改写。

易错点

  • 「只我一人用这条分支」的判断经常过期,动手前再查一次谁引用了它
  • 对公共分支强推后旧提交进入悬空状态,reflog 过期才回收,期间仍会干扰排查

数据来源与参考

  • Git 官方文档:git-rebase(Recovering from Upstream Rebase)
  • Pro Git 2nd Edition · 3.6 变基
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌