从Azure DevOps的Git库中下载指定文件


1. 概述

使用Git做为版本管理工具,当我们需要获取版本库中的某一个代码文件时,都需要首先完整的克隆代码库(git clone),在签出对应的分支(git checkout),然后才能找到你需要的文件。
当代码库中的文件比较大,文件比较大时间,通过克隆的方式下载单个文件就比较费劲了。本文介绍在Azure DevOps Server的git代码库中如何快速获取单个文件。注意在企业内网部署的Azure DevOps Server(之前称TFS)中,操作方式和命令完全一样。

2. 示例

2.1 通过Web浏览器获取文件

使用Azure DevOps的网页端工具,可以完成软件开发的大部分工作,甚至可以在线编写源代码;下图是使用web浏览器下载指定文件的截图。

image

2.2 使用客户端工具tf.exe获取文件

除网页之外,Azure DevOps还在客户端工具tf.exe中扩展了Git相关的功能;使用tf.exe,不仅可以从TFVC库中下载指定的文件,还从Git代码库中下载文档。
tf.exe获取指定git文件的命令行格式和参数如下:

tf git view /collection:TeamProjectCollectionUrl
            /teamproject:TeamProjectIdentifier
            /repository:RepositoryIdentifier
            (/blobId:blobId | /path:path [/commitId:commitId])
            [/output:localfile]
            [/console]
            [/login:username,[password]]
  • collection: 团队项目集合名称,或者Azure DevOps中的账户
  • teamproject: 团队项目名称
  • repository:Git代码库名称
  • blobid: 代码文件对应的blobid;blobid和文件路径不能同时存在
  • path: 文件路径
  • console: 直接将内容输出在控制台窗口中;这个参数不能与output同时使用
  • output: 指定文件在本地存贮的位置和文件名
  • login:username,[password]:用户名和密码,注意账户和密码之间的分隔符是逗号;如果没有指定密码,系统会提示你输入密码
    下面介绍几种常见的场景:

示例1:从代码库的默认分支(一般是master)中下载指定文件

下面的脚本从TFS代码库的默认分支中获取文件,并将文件保存到当前目录下;如果用户没有保存的账户密码,系统会提示输入用户名和密码:

tf git view /collection:http://ads/defaultcollection/teamproject:devops /repository:hellomaven /path:src/main/java/com/mycompany/hellomaven/App.java /output:app.java
将获取的文件输出到控制台:

image

示例2:在获取文件时,输入用户名和密码

如果在脚本中没有指定密码,系统会提示输入密码

tf git view /collection:http://ads/defaultcollection /teamproject:devops /repository:hellomaven /path:src/main/java/com/mycompany/hellomaven/App.java /console /login:danzhang
  

image

示例3:从指定的提交中获取文件

在脚本中指定commitid,就可以获取到对应提交中的文件;
注意commitid只能是一个40位字符的哈希值

tf git view /collection:http://ads2/defaultcollection /teamproject:核心系统CMMI /repository:hellogit /path:azure-pipelines.yml /console /login:adszhanghongjun,P2ssw0rd /commitid:7facebb3c8f6ca96c35f8e4c61e4686aa935705b

image


如果需要,你可以从微软Azure DevOps Server 的在线文档,查询更多的权威资料

------------------------------------------------------------

http://www.cnblogs.com/danzhang/  DevOps MVP 张洪君

------------------------------------------------------------

原文地址:https://www.cnblogs.com/danzhang/p/13906823.html