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 張洪君
------------------------------------------------------------