1. git merge 与 git rebase 的选择决策中团队协作分支与个人特性分支分别适用哪种?黄金法则是什么?
请说明 git merge 与 git rebase 的选择决策:团队协作分支与个人特性分支分别适用哪种?黄金法则是什么?
- merge 与 rebase 的差异
- 协作分支与特性分支的适用
- 黄金法则
团队协作分支(共享、已推送)应使用 merge,以保留真实历史拓扑、避免重写他人依赖的提交;个人特性分支(未共享)可用 rebase,把开发过程中的零碎提交整理成线性历史,再合入主干。黄金法则是:不要 rebase 已共享的分支,因为 rebase 会重写提交 SHA,导致他人历史冲突、无法正常 pull。决策的原则是"是否共享"——共享用 merge,私有可用 rebase。
选择本质是"历史真实性 vs 历史整洁性"的权衡。merge 保留开发过程的真实分叉,rebase 让历史线性可读。但 rebase 的代价是重写历史,破坏已共享者。工程上常见做法:个人分支上 rebase 整理,共享主干用 merge 或 squash merge,严格遵守黄金法则。