首页 > 解决方案 > Azure devops - git repo 同步

问题描述

我在 azure devops 中创建了一个管道,按顺序添加了三个任务,如下所示:
1)命令行任务
2)Powershell 任务
3)命令行任务

任务1)

git config --global user.email "xxx@xx.com"
git config --global user.name "xxxx"
cd $(Build.SourcesDirectory)
git init

任务 2) Powershell 任务

任务 3)

git add filename.csv
git commit -m "csv file update"
git remote rm origin
git remote add origin  https://OrgName@dev.azure.com/OrgName/ProjectName/_git/RepoName
git push -u origin HEAD:master

我在不同的订阅中使用了这个解决方案,没有问题。我将解决方案移至第二次订阅,但仍然面临问题:fatal: could not read Password for https://OrgName@dev.azure.com/OrgName/ProjectName/_git/RepoName: terminal prompts disabled[error]Cmd.exe exited with code 128

我已经使用这个MS 文档配置了 repo任务 3) 有问题。任务 1)任务 2)已成功完成。

标签: gitazure-devopsazure-pipelinesazure-powershell

解决方案


请尝试使用以下推送脚本,该脚本在 git 命令中附加了 PAT 令牌以授权操作:

git push https://{PAT}@dev.azure.com/{org name}/{project name}/_git/{repos name} master

使用此命令并替换原来的git remote add origingit push.

更新:

为了让您更清楚如何将其应用到任务中,我将其复制到我身边。

注意:不需要对原始的第一个Command line task和进行任何更改Powershell task,以下更改仅在第二个 Command line task中:

git checkout $(Build.SourceBranchName)
git add .
git commit -m "aaaa"
git push https://{token}@dev.azure.com/{org name}/{project name}/_git/{repos} master

当我们在 git 命令中应用令牌时,需要更改整个脚本。请在第二个中全部替换上面的脚本Command line task


推荐阅读