从 Azure Pipelines 的获取存储库 Git 中仅提取一个文件夹
Pull only one folder from get repository Git from Azure Pipelines
我正在研究 Git。我的环境是 Azure DevOps。我有一个 vsts 构建代理。
我正在尝试将我的存储库中的一个文件夹仅拉到构建代理中。我正在使用 PowerShell。
我试过的是:
git init
git remote add origin https://MYUSERNAME:MYPERSONALACCESSTOKEN@mytfs-git-project-url
git config core.sparseCheckout true
Set-Content .git\info\space-checkout "myfolder/*" -Encoding Ascii
git pull origin master
我收到用户名错误导致身份验证失败。我可以使用在本地克隆它
"git clone https://MYPERSONALACCESSTOKEN@tfs-git-url"
,但如果我在 Azure DevOps Powershell 上尝试相同的操作,它会给出错误,因为无法读取用户名错误。我确实尝试了 Whosebug 的建议,但没有用。欢迎任何新建议。
我对您的脚本做了一些更改,当从同一个 Azure DevOps 组织下载源代码时,它正在我的环境中运行。变化如下:
- 我没有依赖手动设置稀疏配置,而是使用
sparse-checkout set
命令,它会自动设置其他所需的标志和配置。
- 我没有(不安全地)在克隆 URL 中设置安全令牌,而是将变量作为
extraheader
. 传递
- 我没有依赖 PAT(在本地很好),而是从 build/release 作业中获取访问令牌。
这导致以下任务:
steps:
- task: PowerShell@2
displayName: 'Sparse Checkout'
inputs:
script: |
git init
git remote add origin https://org@dev.azure.com/org/project/_git/repo
git config core.sparseCheckout true
git sparse-checkout set "Folder/*"
git -c http.extraheader="AUTHORIZATION: Bearer $env:System.AccessToken" pull origin master
workingDirectory: '$(System.ArtifactsDirectory)'
env:
System.AccessToken: $(System.AccessToken)
在 UI 中设置这些输入同样有效:
我正在研究 Git。我的环境是 Azure DevOps。我有一个 vsts 构建代理。 我正在尝试将我的存储库中的一个文件夹仅拉到构建代理中。我正在使用 PowerShell。 我试过的是:
git init
git remote add origin https://MYUSERNAME:MYPERSONALACCESSTOKEN@mytfs-git-project-url
git config core.sparseCheckout true
Set-Content .git\info\space-checkout "myfolder/*" -Encoding Ascii
git pull origin master
我收到用户名错误导致身份验证失败。我可以使用在本地克隆它
"git clone https://MYPERSONALACCESSTOKEN@tfs-git-url"
,但如果我在 Azure DevOps Powershell 上尝试相同的操作,它会给出错误,因为无法读取用户名错误。我确实尝试了 Whosebug 的建议,但没有用。欢迎任何新建议。
我对您的脚本做了一些更改,当从同一个 Azure DevOps 组织下载源代码时,它正在我的环境中运行。变化如下:
- 我没有依赖手动设置稀疏配置,而是使用
sparse-checkout set
命令,它会自动设置其他所需的标志和配置。 - 我没有(不安全地)在克隆 URL 中设置安全令牌,而是将变量作为
extraheader
. 传递
- 我没有依赖 PAT(在本地很好),而是从 build/release 作业中获取访问令牌。
这导致以下任务:
steps:
- task: PowerShell@2
displayName: 'Sparse Checkout'
inputs:
script: |
git init
git remote add origin https://org@dev.azure.com/org/project/_git/repo
git config core.sparseCheckout true
git sparse-checkout set "Folder/*"
git -c http.extraheader="AUTHORIZATION: Bearer $env:System.AccessToken" pull origin master
workingDirectory: '$(System.ArtifactsDirectory)'
env:
System.AccessToken: $(System.AccessToken)
在 UI 中设置这些输入同样有效: