从Azure DevOps的Git库中下载指定文件
1. 概述
使用Git做为版本管理工具,当我们需要获取版本库中的某一个代码文件时,都需要首先完整的克隆代码库(git clone),在签出对应的分支(git checkout),然后才能找到你需要的文件。
当代码库中的文件比较大,文件比较大时间,通过克隆的方式下载单个文件就比较费劲了。本文介绍在Azure DevOps Server的git代码库中如何快速获取单个文件。注意在企业内网部署的Azure DevOps Server(之前称TFS)中,操作方式和命令完全一样。
2. 示例
2.1 通过Web浏览器获取文件
使用Azure DevOps的网页端工具,可以完成软件开发的大部分工作,甚至可以在线编写源代码;下图是使用web浏览器下载指定文件的截图。
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
示例2:在获取文件时,输入用户名和密码
如果在脚本中没有指定密码,系统会提示输入密码
tf git view /collection:http://ads/defaultcollection /teamproject:devops /repository:hellomaven /path:src/main/java/com/mycompany/hellomaven/App.java /console /login:danzhang
示例3:从指定的提交中获取文件
在脚本中指定commitid,就可以获取到对应提交中的文件;
注意commitid只能是一个40位字符的哈希值
tf git view /collection:http://ads2/defaultcollection /teamproject:核心系统CMMI /repository:hellogit /path:azure-pipelines.yml /console /login:ads\zhanghongjun,P2ssw0rd /commitid:7facebb3c8f6ca96c35f8e4c61e4686aa935705b
如果需要,你可以从微软Azure DevOps Server 的在线文档,查询更多的权威资料
------------------------------------------------------------
http://www.cnblogs.com/danzhang/ DevOps MVP 张洪君
------------------------------------------------------------