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

Azure DevOps流水线Git推送标签正常但提交推送报身份错误咨询

问题原因解答

1. 标签推送正常但提交出现身份相关报错的核心原因

你遇到的两个报错本质和仓库访问权限无关,是Git本地操作的必填校验没通过:

  • Author identity unknown报错是Git提交的强制要求:git commit操作必须配置user.name和user.email来标记提交者身份,这个配置和仓库访问认证是两套独立规则。而git tag、git push --tags操作不需要用到这两个配置,只要你有仓库的推送权限、认证凭证有效就能成功,所以你的标签推送可以正常运行。
  • 第二个detached HEAD报错是Azure DevOps多仓库checkout的默认行为导致:默认拉取指定ref的提交时不会切换到对应分支,本地处于游离头状态,直接执行git push时Git不知道要把提交推到远端的哪个分支,所以抛出错误。

2. persistCredentials未生效的误解说明

persistCredentials: true配置已经正常生效了,它的作用是把Azure DevOps构建服务的访问令牌写入本地Git配置,用于仓库的推拉鉴权,你推送标签能成功就是这个配置生效的证明。
你后续提交推送失败的两个报错都不属于鉴权失败范畴,所以和这个配置无关。

修复方案

你可以按以下步骤修改PowerShell脚本即可解决问题:

  1. 在进入仓库目录后先配置Git提交身份:
git config user.name "Azure DevOps Build Service"
git config user.email "devops@yourorg.com"
  1. 切换到目标分支(以main为例),避免游离头状态:
git checkout main
  1. 调整操作顺序:修改文件后先执行提交,再打对应版本的标签,否则标签会绑定到旧的提交上:
# 修改文件后先提交
git add *
git commit -m 'New version'
# 再打标签
git tag $version.numero --force
# 最后同时推送代码和标签
git push origin main --tags --force

内容的提问来源于stack exchange,提问作者Frédéric De Lène Mirouze

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 05:54:03