如何下载Azure DevOps指定Git Pull Request中的变更文件
无需克隆完整仓库下载Azure DevOps PR全部文件的可行方案
下面是三种不同场景下的可用方案,均不需要拉取完整仓库的所有历史和分支:
方案1:网页端直接下载(最简便,无需任何工具)
- 打开目标PR的详情页面,点击右上角的「更多操作」按钮(三个点图标)
- 在下拉菜单中找到下载相关选项:
- 选择下载源代码即可直接获取该PR当前提交状态的完整代码压缩包,解压后就能拿到全部文件,不需要提前获取commit ID
- 如果只需要该PR修改过的文件,选择下载补丁得到.diff格式的补丁文件即可
方案2:浅克隆拉取PR分支(适用于命令行操作场景)
仅拉取PR对应分支的最新提交,不需要下载仓库全量历史,占用空间极小:
- 新建空文件夹并初始化git仓库:
git init temp-pr-dir && cd temp-pr-dir - 关联Azure DevOps远程仓库地址,替换为你自己的仓库Git地址:
git remote add origin https://project-domain/project-name/_git/repo-name - 浅拉取对应PR的内容,将命令中的
<PR号>替换为你PR链接里的xxxxx数字,拉取深度设为1仅拉取最新提交:git fetch origin pull/<PR号>/head:pr-local --depth 1 - 切换到拉取下来的PR本地分支,即可拿到该PR的全部文件:
git checkout pr-local
方案3:调用REST API下载(适用于自动化流程场景)
如果需要集成到脚本或自动化工具中,拿到PR关联的commit ID后调用官方接口即可直接获取zip格式的代码包,请求格式如下:GET https://project-domain/project-name/_apis/git/repositories/<repo-name>/items?path=/&versionDescriptor.version=<PR关联的commitId>&versionDescriptor.versionType=commit&$format=zip&api-version=7.1-preview.1
请求时带上你的Azure DevOps账号认证信息即可直接下载压缩包。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

