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

.NET多类库项目Git分支策略与版本管理优化咨询

多版本.NET项目Git仓库组织与版本管理疑问

当前分支策略及问题

管理包含多个类库的.NET项目时,采用如下Git分支策略:

feature 1
             +------------+
           ^/              \
  master   /                v
----------+-+---+---------- PR ----+------+-----------
             \   \                  \      \
              \   v  release/7.0     \      v
               \  +------------------ \ ----+--------- 从master分支创建该分支,将"version"设为7.0.0、7.0.1…,aspnetcore包版本也指向7.x.x
                \                      \
                 v  release/6.0         v
                 +----------------------+------------- 从master分支创建该分支,将"version"设为6.0.0、6.0.1…,aspnetcore包版本也指向6.x.x

该策略存在明显问题:无法在master分支正常更新.NET版本,因为此类版本变更需同步合并至所有release分支,导致master分支始终滞后。曾了解过GitFlow,但不清楚它如何解决master分支版本变更需合并至所有release分支的问题。

参考ASP.NET Core分支策略

通过SourceTree查看ASP.NET Core的分支图,发现main分支从未合并至release/6.0和release/7.0分支,但提交仍会出现在这些分支上:
aspnetcore分支图
main分支已将版本改为8,但该变更未同步到其他release分支。

补充说明:参考Angular分支策略

观察Angular项目的分支图发现,main分支的提交无需合并即可同步至release分支,且提交时间仅差2秒,并非手动cherry-pick:
angular分支图

核心疑问

  • 发布流程何时/何地将0.0.0-PLACEHOLDER替换为实际版本?版本来源是什么?该阶段如何映射对应依赖版本?
  • Angular/ASP.NET Core等项目是否使用GitFlow?它们如何同时管理多个主版本?
  • 版本号的来源是什么?

个人推测方案

是否可以在master分支修改版本及依赖版本,并标记此类提交在合并至release分支时跳过?该方案是否可行?

补充说明2

LinkedIn在其开发博客发布文章,介绍了一款可自动执行cherry-pick操作并创建PR的应用,同时也存在相关的GitHub Actions;Google也推出了用于将提交cherry-pick至release分支并创建PR的GitHub Bot。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 22:15:13