You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

主分支下存在依赖关系的子分支最优Git分支策略咨询

优化Git分支策略解决依赖分支开发与PR冗余问题

一、在classroom-models的PR未完成时启动classroom-services开发

直接基于classroom-models分支创建classroom-services分支,无需等待前者合并主分支:

  • 执行命令切换到models分支并创建services分支:
    git checkout classroom-models
    git checkout -b classroom-services
    
  • 开发过程中,如果classroom-models有更新,直接在classroom-services分支同步:
    git pull origin classroom-models
    
    解决可能出现的冲突后继续开发即可。

二、避免classroom-services的PR包含classroom-models的变更

当classroom-models合并到主分支classroom后,通过变基清理services分支的提交历史,确保PR只包含自身变更:

  1. 拉取主分支最新代码:
    git fetch origin
    
  2. 在classroom-services分支执行变基,将自身提交移到主分支最新代码之上:
    git rebase origin/classroom
    
  3. 若出现冲突,手动解决冲突后执行git add .,再继续变基:
    git rebase --continue
    
  4. 变基完成后强制推送到远程分支(变基修改了提交历史,需提前和团队沟通):
    git push origin classroom-services --force
    

替代方案(团队不接受变基时)

如果团队偏好保留合并历史,可使用合并后重置的方式:

  1. 拉取主分支最新代码并合并到services分支:
    git merge origin/classroom
    
  2. 重置到主分支最新提交,保留工作区变更:
    git reset --soft origin/classroom
    
  3. 重新提交services的变更:
    git add .
    git commit -m "提交classroom-services的变更"
    
  4. 推送到远程分支:
    git push origin classroom-services --force
    

提前评审小技巧

开发过程中可给classroom-services开一个草稿PR,将目标分支设为classroom-models,先完成代码评审;等classroom-models合并主分支后,再修改PR的目标分支为classroom,同时执行上述变基/重置操作,即可快速完成最终PR提交。

内容的提问来源于stack exchange,提问作者Stephen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 18:46:42