我将在Azure DevOps中创建一个Git代码库,其URL类似于以下:
https://[$server]/tfs/[$company]/[$project]/_git/[$repoName]
我可以通过在此基础上追加类似于以下内容来访问库中的单个文件:
?path=/[$folder]/[$fileName]
我想使用PowerShell从该代码库下载特定文件,并将其下载到对应的位置和文件名,如下所示:
$sourcePath = "https://[$server]/tfs/[$company]/[$project]/_git/[$repoName]?path=/[$folder]/[$fileName]&download=true"
$filePath = "C:\Documents\[$folder]\[$fileName]"
Invoke-RestMethod -Uri $sourcePath -Method Get -Headers @{Authorization=("Basic {0}" -f [$AuthInfo])} -OutFile $filePath
这样做的作用是将本地文件的内容替换为响应正文的内容,而不是使用来自存储库的文件替换本地文件。我发现很奇怪,所有我已经搜索过的谷歌都建议这样做,即使Microsoft关于Invoke-RestMethod的文章实际上解释了这就是
-OutFile
的功能。注意,我也尝试过
Invoke-WebRequest
...同样的事情。那么,如何将实际文件从存储库下载到我想要的本地目标(或者用存储库文件的内容替换本地目标文件的内容)?
此外,有没有一种方法指定从哪个分支获取文件?也许我应该以某种方式使用Git PowerShell命令?我所做的关于从git存储库下载文件的其他搜索结果都是关于GitHub的。
谢谢!