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

Jenkins执行git push时遇Visual Studio仓库用户名读取失败求助

解决Jenkins中Git推送Visual Studio远程仓库失败的问题

我来帮你搞定这个问题!从你给出的错误输出和脚本来看,核心问题很明确:

fatal: could not read Username for 'https://nestle-globe.visualstudio.com': No such device or address

你设置的user.name和user.email只是Git提交时的身份标识,和远程仓库的访问认证完全是两回事——Jenkins执行push操作时,没有拿到访问Visual Studio仓库的有效凭证,才会报这个错。

下面是具体的解决步骤:

1. 先生成Visual Studio的个人访问令牌(PAT)

现在Visual Studio(Azure DevOps)已经不再支持用账号密码直接推送代码,必须用个人访问令牌:

  • 登录你的Visual Studio账号,进入「用户设置」→「个人访问令牌」
  • 新建令牌,勾选「代码」分类下的「读&写」权限,设置合适的有效期
  • 保存好这个令牌,后续配置会用到

2. 在Jenkins中添加仓库访问凭证

  • 打开Jenkins后台,进入「Manage Jenkins」→「Manage Credentials」
  • 选择「全局域」(或者你的Job所属的域),点击「Add Credentials」
  • 类型选「用户名和密码」,用户名填你的Visual Studio账号,密码填刚才生成的PAT
  • 给凭证起个好记的名字(比如VS-Nestle-Repo-Cred),保存即可

3. 配置你的Jenkins任务

  • 打开出问题的Jenkins任务,找到「源代码管理」模块的Git配置区
  • 在「凭证」下拉框里,选中你刚添加的VS-Nestle-Repo-Cred
  • 确认远程仓库的URL是正确的HTTPS格式,比如https://nestle-globe.visualstudio.com/[项目名]/_git/[仓库名]

4. 调整Shell脚本的细节(可选但更稳妥)

你脚本里用了git config --global,但Jenkins的每个Job可能运行在独立的上下文里,全局配置未必生效,建议改成针对当前仓库的本地配置:

git branch -a
git checkout PROD-Backup-NHS
touch newfile1
ls -lrt ${WORKSPACE}
# 改用本地仓库配置,替代全局配置
git config user.email "user.name@nestle.com"
git config user.name "user name"
git add .
git commit -m "Added file"
# 直接push即可,Jenkins会自动调用配置好的凭证
git push origin PROD-Backup-NHS

额外排查点

  • 检查Jenkins服务器能否正常访问https://nestle-globe.visualstudio.com,可以在Jenkins节点上执行curl https://nestle-globe.visualstudio.com测试网络连通性
  • 确认你的PAT没有过期,且权限确实包含代码的读写权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:34:16