Git操作咨询:将bugfix分支设为新develop并保留旧develop分支
方案可行性评估
你提出的初始操作方案完全可行,能够同时满足「保留旧develop分支可用内容」「将bugfix分支设置为新的develop分支适配Git flow」的两个核心需求,操作路径清晰,风险可控。
初始方案标准落地操作步骤
- 切换到本地旧develop分支,同步远端最新内容保证本地和远端版本一致:
git checkout develop && git pull origin develop - 基于当前最新的旧develop内容创建归档分支并推送到远端:
git checkout -b develop-old && git push origin develop-old - 将本地develop分支重置为和目标bugfix分支完全一致:
git checkout develop && git reset --hard 你的bugfix分支名 - 强制推送重置后的develop分支到远端(操作前需通知所有团队成员暂停向develop提交内容,避免提交覆盖):
git push origin develop --force-with-lease
注:
--force-with-lease比普通--force更安全,推送前会校验远端develop和你本地重置前的版本是否一致,避免覆盖其他人刚提交的内容。
更稳妥的无强制推送替代方案
如果你们团队对主流程分支的强制推送有严格管控规则,也可以采用分支重命名的方案,完全规避强制推送风险:
- 先将本地旧develop重命名为develop-old并推送远端归档:
git checkout develop && git pull && git branch -m develop-old && git push origin develop-old - 删除远端的旧develop分支:
git push origin --delete develop - 将当前在用的bugfix分支重命名为develop并推送远端作为新的开发基准分支:
git checkout 你的bugfix分支名 && git branch -m develop && git push origin develop
操作后注意事项
- 通知所有团队成员删除本地旧的develop分支,重新拉取远端新的develop分支做后续开发
- 可以将远端的develop-old分支设置为只读归档状态,避免后续有人误提交内容
- 后续从旧develop迁移提交时,建议从新develop拉取独立功能分支,cherry-pick对应提交后走正常评审流程合并回新develop即可
内容的提问来源于stack exchange,提问作者John K
相关产品推荐
相关产品推荐

