如何将原develop分支更新同步到派生的develop-2分支?
跨受保护分支的Git更新同步操作方案

前置约束说明
- 分支关系:
develop-2是从基线分支develop派生的长期特性分支,规划在远期版本才会合回develop - 权限规则:禁止直接向
develop、develop-2分支推送提交,两个分支的所有变更必须通过Pull Request流程评审合入 - 同步需求:
develop-2派生后,develop分支产生了新的提交,需要将这部分更新同步到develop-2,支撑后续新功能开发
分步操作流程
- 拉取远端仓库最新分支状态,保证本地拿到最新的提交记录
git fetch origin - 基于远端最新的
develop-2分支,创建独立的临时工作分支专门处理本次同步,分支名可自定义为sync/develop-latest-to-develop-2git checkout -b sync/develop-latest-to-develop-2 origin/develop-2 - 将
develop分支的最新更新整合到当前临时分支,可根据团队提交规范二选一:- 合并(merge)方式:保留所有原始提交轨迹,操作容错率高,适合没有严格线性提交要求的团队
git merge origin/develop如果执行过程中提示代码冲突,本地逐文件解决冲突后,执行
git add <已解决冲突的文件路径>标记解决状态,再执行git merge --continue即可完成合并 - 变基(rebase)方式:最终提交历史呈线性更整洁,注意仅可在个人临时工作分支执行该操作,严禁在公共分支执行rebase
git rebase origin/develop遇到冲突时,解决后执行
git add <已解决冲突的文件路径>,再执行git rebase --continue即可推进流程;如果中途想放弃本次变基,执行git rebase --abort就能回到操作前的状态
- 合并(merge)方式:保留所有原始提交轨迹,操作容错率高,适合没有严格线性提交要求的团队
- 将本地处理完冲突、整合好更新的临时分支推送到远端个人仓库
git push origin sync/develop-latest-to-develop-2 - 在代码托管平台发起Pull Request:源分支选择刚推送的
sync/develop-latest-to-develop-2,目标分支选择develop-2,填写同步说明后提交评审,评审通过合入后就完成了本次跨分支同步。
实操注意事项
- 不要直接在本地切到
develop-2分支执行合并后直接推送,不仅会触发权限拦截失败,也违反分支管控流程 - 长期独立迭代的特性分支建议固定周期(比如每周1次)同步基线分支的更新,避免两边提交差异过大导致冲突解决成本陡增
- 如果没有特殊的提交历史规范要求,优先选merge方式做同步,操作逻辑简单,不容易出现提交错乱的问题
内容的提问来源于stack exchange,提问作者Li JY
相关产品推荐
相关产品推荐

