关于团队拒绝将master分支合并至develop分支的技术咨询
安全同步master热修复到develop的可行方案
我太懂你们团队的顾虑了——直接把稳定的master合并到堆满未测试特性的develop,简直是踩坑高发区,之前我接触的团队也出过好几次因为合并冲突处理不当,弄丢develop上未完成代码的情况。
别用直接合并的方式了,换这套流程能彻底规避风险:
- 用
git cherry-pick精准同步修复:master上的热修复/BUG修复都是独立的小提交,把这些提交的哈希值记下来,切换到develop分支后执行git cherry-pick <commit-hash>。这样只会把修复的代码同步过去,不会把整个master的历史和develop搅在一起,冲突范围也小得多。 - 冲突必须找原开发人员处理:如果cherry-pick遇到冲突,绝对不能自己瞎改——喊写那个特性代码的同事过来一起看,他们最清楚逻辑,能避免误删未完成的工作。
- 先本地测试再推远程:同步前先拉最新的develop,本地建个临时分支先做cherry-pick和测试,确认没问题再推到远程develop,别直接在公共分支上操作。
- 留好同步记录:每次同步完,把对应的提交哈希记在团队文档或者PR备注里,方便后续追溯,也能防止重复同步。
之前你们遇到的代码丢失,大概率是合并时选了“接受master版本”,直接把develop上的代码覆盖了。而cherry-pick只针对单个修复提交,就算有冲突,也能清晰看到是修复代码和哪个特性代码冲突,更容易处理。
额外提一句:如果用GitHub/GitLab的话,还可以直接在develop上开个PR,把master上的修复提交作为源,走一遍代码审查再合并,多一层保障。
内容的提问来源于stack exchange,提问作者tonix




