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

GitHub Actions中fetch-depth:0未拉取全部分支标签,GitVersion版本异常

问题分析与解决

一、为什么git branch -l仅能看到dev分支?

fetch-depth: 0确实会拉取仓库的所有历史、远程分支和标签,但GitHub Actions的checkout动作默认只会在本地创建并检出触发工作流的分支(此处为dev),其他远程分支不会自动生成对应的本地分支。因此:

  • 执行git branch -l(仅显示本地分支)只能看到dev;
  • 执行git branch -a可以查看所有远程分支;
  • 如果需要在本地创建main分支,可在checkout步骤后添加:
    git fetch origin main:main
    

二、GitVersion输出1.0.1而非期望的1.1.0的原因及解决

GitVersion在持续交付模式下的版本计算依赖分支策略配置,默认规则下dev分支可能被识别为普通分支,从而递增patch版本(1.0.1)而非minor版本(1.1.0),可通过以下方式修复:

1. 添加GitVersion配置文件

在仓库根目录创建GitVersion.yml,明确分支规则,将dev分支标记为开发分支并指定递增Minor版本:

mode: ContinuousDeployment
branches:
  main:
    mode: ContinuousDeployment
    increment: None
    regex: ^master$|^main$
  develop:
    mode: ContinuousDeployment
    increment: Minor
    regex: ^dev(elop)?(ment)?$
    tag: alpha # 若不需要alpha标签可设为空字符串

2. 确保GitVersion能识别主分支上下文

在运行dotnet-gitversion时,可显式指定主分支参数,避免分支识别错误:

$GitVersion = dotnet-gitversion /mainline main /output json | ConvertFrom-Json

3. 验证标签拉取完整性

虽然fetch-depth: 0包含标签,但可在checkout步骤后添加显式拉取命令确保生效:

git fetch --tags

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:52:36