使用 Team Foundation 版本控制命令
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 |Visual Studio 2022
您可以使用版本控制命令,在 Visual Studio 中執行幾乎所有 Team Foundation 版本控制 (TFVC) 工作。 您也可以使用版本控制命令來執行在 Visual Studio 中無法完成的數項工作。 若要從命令提示字元或腳本內執行版本控制命令,請使用 tf.exe
此工具。
執行命令
若要啟動 Visual Studio 命令提示字元,請從 Windows Start 選取 VS2022 或舊版的開發人員命令提示字元快捷方式。
注意
針對 Visual Studio 2019 和更新版本,tf.exe
二進位檔已不再位於 Visual Studio 安裝路徑中的固定位置,例如 ,例如 。 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
如果您的腳本使用 tf.exe
,請勿根據 Visual Studio 安裝路徑硬式編碼檔案的路徑。
在大部分情況下,您會在工作區中對應的目錄內容中執行版本控制命令。 例如, $/SiteApp/Main/
對應至 c:\\code\\SiteApp\\Main\\
。 若要取得工作區中所有專案的最新版本,請使用下列命令:
c:\code\SiteApp\Main\SolutionA>tf get
設定您的開發計算機及管理工作區
您的工作區是小組程式代碼基底的本地副本。 因為它是開發電腦上的本機複本,因此您可以隔離開發和測試程序代碼,直到您準備好簽入您的工作為止。 以下是管理工作區的一些命令:
如需詳細資訊,請參閱以下資源:
開發您的應用程式
使用下列命令,與小組在版本控制下開發您的應用程式:
- 新增命令:將檔案和資料夾新增至版本控制。
- 簽出 (或編輯) 命令:取出檔案,並變更其擱置的變更狀態以 編輯。
- 刪除命令 (Team Foundation 版本控制):從 Azure DevOps 伺服器移除檔案和資料夾,並從磁碟中刪除它們。
- 取得命令:從 Azure DevOps Server 取得最新版或指定版本的一或多個檔案或資料夾至工作區。
- 重新命名命令 (Team Foundation 版本控制):變更檔案或資料夾的名稱或路徑。
- 狀態命令:顯示工作區或擱置集中檔案和資料夾暫止變更的相關信息。
- 復原命令:捨棄對檔案或資料夾的指定暫止變更。
- 取消刪除命令:還原先前刪除的專案。
如需詳細資訊,請參閱 在 Team Foundation 版本控制中開發您的應用程式。
暫停您的工作
基於各種原因,有時您需要擱置一些或所有進行中的工作。 若要暫停和繼續您的工作,以及管理擱置集,請使用下列命令:
如需詳細資訊,請參閱 暫停您的工作和管理擱置集。
參與您的工作
checkin
使用 命令將程式代碼簽入小組的程式代碼基底:
- Checkin 命令:檢查伺服器檔案或資料夾的暫止變更。
如需詳細資訊,請參閱 將工作簽入小組的程式代碼基底。
管理檔案並解決問題
使用下列各節中的資源來管理檔案。
檢視和管理版本控制檔案和資料夾
- Properties (或 Info) 命令:顯示版本控制中專案的相關信息。
- Dir 命令:顯示版本控制伺服器的內容。
- Destroy 命令 (Team Foundation 版本控制):永久刪除版本控制的檔案。
- LocalVersions 命令:顯示工作區專案的版本。
如需詳細資訊,請參閱 使用原始檔控制總管來管理版本控制下的檔案。
檢視及管理過去的版本
- Changeset 命令:變更或顯示變更集屬性。
- 歷程記錄命令:顯示檔案或資料夾的修訂歷程記錄。
- 標籤指令 (Team Foundation 版本控制):從檔案或資料夾附加或移除標籤。
- Labels 命令:顯示伺服器中使用的標籤相關信息。
- 回復命令 (Team Foundation 版本控制):回復變更集的效果。
- 取消標記命令:從伺服器的現有標籤中移除專案。
- 檢視命令:擷取指定的檔案版本並加以顯示。
如需詳細資訊,請參閱 檢視和管理過去的版本。
比較資料夾和檔案
- 差異命令:比較檔案和擱置集之間的差異。
- Folderdiff 命令:比較兩個資料夾中檔案之間的差異。
如需詳細資訊,請參閱 檢視和管理過去的版本。
解決檔案衝突
- 解決命令:解決工作區和伺服器上專案之間的衝突。
如需詳細資訊,請參閱解決 Team Foundation 版本控制 衝突。
使用版本控制鎖定
- 鎖定命令:鎖定或解除鎖定檔案和資料夾。
如需詳細資訊,請參閱 使用版本控制鎖定。
隔離風險
使用下列命令來使用分支來隔離風險:
如需詳細資訊,請參閱使用分支來隔離 Team Foundation 版本控制 中的風險。
管理員 ister 版本控制
使用下列命令來管理您的版本控制系統:
如需詳細資訊,請參閱 設定取出設定。
取得版本控制命令的說明
使用下列命令來取得版本控制命令的詳細資訊:
瞭解命令語法
每個命令的語法會出現在每個參考發行項的頂端。
必要和選擇性引數
非括號自變數是必要的。 [方括弧] 表示不需要完成命令的選擇性自變數。 不過,即使您未指定 選項,某些選擇性自變數也有套用至命令的預設值。
獨佔自變數
當選項以管道分隔時,|您可以指定其中一個選項。
逐字和可取代的自變數
未以括弧括住的專案是您包含逐字選項。 以角括弧 (< 和 >) 括住的專案是自變數,您必須以實際字元取代才能執行命令。
命令快捷方式和別名
某些命令支援快捷方式。 例如,您可以使用 或呼叫Delete命令tf delete
。tf del
範例
例如,請考慮 Checkout 命令:
tf checkout [/lock:( none|checkin|checkout)] [/recursive] <item-spec> [/login: <username>, [<password>]]
此範例包含下列自變數:
<item-spec>
:您必須將這個自變數取代為 項目規格 ,以識別您要取出的專案。- 下列自變數是選擇性的。 如果您未提供它們,則不會將其效果套用至 命令:
/lock:(none|checkin|checkout)
:如果您未指定/lock
選項,系統預設會使用/lock:none
。 否則,您可以指定其他其中一個鎖定選項。/recursive
:如果您想要以遞歸方式簽出資料夾中的多個專案,您必須指定此選項逐字指定。/login:<username>, <password>
:如果您想要以其他使用者身分執行命令,您必須指定/login
選項逐字,並以使用者名稱取代<username>
。 如有必要,請將 取代<password>
為用戶的密碼。
指定受命令影響的專案
您可以使用專案規格和版本規格來指定哪些專案受到命令影響。
使用專案規格自變數來指定受影響的專案
您可以使用項目規格來指定受命令影響的專案。 您可以在用戶端電腦或 Azure DevOps 伺服器上指定專案。 您可以使用和 之類的*通配符。
用戶端項目規格自變數
用戶端項目規格自變數會指定用戶端電腦上項目的路徑,例如:
- 例如, c:\code\SiteApp\Main\SolutionA\的資料夾。
- 例如, c:\code\SiteApp\Main\SolutionA\Project1\program.cs檔案。
- 多個檔案,例如 c:\code\SiteApp\Main\SolutionA\*.cs。
- 通用命名慣例 (UNC) 路徑,例如 \\myshare\code\SiteApp\Main。
伺服器項目規格自變數
伺服器項目規格自變數會指定 Azure DevOps 伺服器上的項目路徑,例如:
- 資料夾,例如 $/SiteApp/Main/SolutionA。
- 例如 $/SiteApp/Main/SolutionA/Project1/program.cs檔案。
- 多個檔案,例如 $/SiteApp/Main/SolutionA/*.cs。
當您需要在不在客戶端電腦上的專案上執行命令時,通常會使用伺服器項目規格自變數。 例如,假設您正在使用開發計算機。 如果您需要取得一些未使用之專案集合中某些專案的修訂歷程記錄數據,您可以使用下列命令:
c:\>tf history /collection:https://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive
/noprompt
多個項目規格自變數
針對某些命令,您可以指定多個項目規格自變數,例如:
c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c
此命令會取出 program.cs 和 program2.c。
使用版本規格自變數來指定受影響的專案版本
您可以使用版本規格來指定受命令影響的專案版本。 若要提供版本規格,您可以:
/version
使用 選項,例如/version:C44
。使用分號將版本規格附加至項目規格,例如
program1.cs;C44
。
當您使用 [歷程記錄] 命令 或 [差異] 命令時,可以藉由將版本與底圖分隔來指定一系列版本,例如:
c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2022~D4/24/2022
使用下列語法來指定版本規格:
類型 | 語法 | 描述 | 範例 | 結果 |
---|---|---|---|---|
Changeset | [C]<version-number> |
根據變更集編號指定專案。 如果範圍中的專案未在指定的變更集中修改,系統會採用指定變更集之前所發生之專案的最新版本。 如果您只指定數位,可以省略 C 。 |
tf get readme.txt /v:C8 tf get readme.txt /v:8 tf get readme.txt;8 |
如果 變更集 8 中修改了readme.txt ,範例程式代碼會取得該版本的檔案。 否則,它會取得版本 8 之前的最新 readme.txt 版本。 |
標籤 | L<label> |
指定套用標籤的專案。 | tf get readme.txt;LJulyHotFix tf get /version:LLastKnownGood |
第一個範例會取得標示為 JulyHotFix 的readme.txt版本。 第二個會擷取工作區中所有已標記專案的版本(並刪除那些未加上標籤的專案),因為它們在建立標示為 LastKnownGood 的變更集時已存在。 您可以在第二個範例中使用程式代碼作為自動化建置程式的一部分。 |
日期和時間 | D<yyyy-mm-ddTxx:xx> 或 D<mm/dd/yyyy> 或 任何 .NET Framework 支援的格式。 或 本機計算機上支援的任何日期格式。 |
指定在特定時間在指定日期建立的變更集。 | tf get /version:D2022-03-22 tf get /version:D2022-03-22T09:00 |
第一個範例會更新工作區,使其符合存在於 2022 年 3 月 22 日午夜的程式碼基底。 第二個更新工作區,以符合其存在於 2022 年 3 月 22 日上午 9:00 的程式代碼基底。 如需 .NET Framework 支援日期和時間格式的詳細資訊,請參閱 DateTime 和 標準日期和時間格式字串。 |
目前的工作區 | W |
指定工作區中的版本。 | - | - |
指定的工作區 | W<workspace-name>; <workspace-owner> |
指定指定工作區中的版本。 | tf get /version:WResolveRIConflicts;PatW |
此範例會指定工作區PatW 中ResolveRIConflicts 擁有的版本。 |
提示 | T |
指定最新版本。 | - | - |
使用選項來修改命令的運作方式
您可以使用一些常見的選項來修改命令的運作方式。
/noprompt
使用 選項來隱藏數據輸入要求和重新導向輸出數據
/noprompt
使用 選項來隱藏數據輸入的要求,並將輸出數據重新導向至命令提示字元視窗。 當您需要在文稿中使用版本控制命令時,此選項很有用:
- 命令會在使用者不介入的情況下繼續進行。
- 數據可供腳本執行作業,例如剖析或擷取。
當您使用這個選項時,系統會:
隱藏輸入的所有要求:
- 命令提示字元視窗中不會詢問問題。 例如,當您搭配此選項使用 Undo 命令 時,系統不會提示您確認是否要復原變更。
- 不會顯示 Windows 和對話框。 例如,您可以使用此選項搭配 Checkin 命令。 系統不會顯示 [簽到] 對話框,讓您確認專案和相關聯的工作專案。 相反地,系統會在不確認的情況下簽入專案。
將輸出數據重新導向至命令提示字元。 例如,您可以使用此選項搭配 History 命令。 數據會顯示在命令提示字元視窗中,而不是 [ 歷程記錄] 視窗。
/login
使用 選項來指定認證
/login
使用 選項來指定要在 中執行命令的 Azure DevOps 伺服器用戶帳戶。 當您在另一個小組成員的計算機上工作時,此選項很有用。
例如,假設您正在小組成員的開發計算機上工作。 您可以使用 Lock 命令 來解除鎖定您稍早鎖定的檔案:
c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>,<password>
如果您要避免在命令提示字元中出現密碼,您可以輸入命令而不使用密碼:
c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>
輸入此命令之後,系統會提示您在遮罩輸入的對話框中輸入密碼。
/lock
使用 選項來套用或移除鎖定
重要
最佳作法是使用 /lock
選項,並視需要謹慎使用。 通知小組成員您鎖定專案的原因,以及何時計劃移除鎖定。
/lock
使用 選項,在您執行另一個命令時套用或移除鎖定,例如 [新增] 或 [編輯]。
/lock:(none|checkin|checkout)
這個指令 /lock
會使用下列選項:
None
:項目上沒有鎖定。 如果鎖定已就緒,則會移除鎖定。Checkin
或Checkout
:套用鎖定。 如需詳細資訊,請參閱 瞭解鎖定類型。
注意
在少數情況下,鎖定作業可能會失敗:
- 如果任何其他使用者已鎖定任何指定的專案,鎖定作業就會失敗。
- 如果指定的專案已經有暫止的變更,系統就會忽略這個參數。 在此情況下,您必須使用 Lock 命令 來變更項目的鎖定。
使用選項快捷方式
您可以縮寫下列選項。
選項
選項別名
/comment
-C
/computer
-M
/delete
-D
/force
-P
/format
-F
/help
-?, -H
/lock
-K
/login
-Y
/newname
-N
/noprompt
-I
/owner
-O
/recursive
-R
/server
-S
/slotmode
-X
/template
-T
/user
-U
/version
-V
/workspace
-W
了解結束代碼
版本控制命令會傳回下列結束代碼:
結束碼
[定義]
0
成功。
1
部分成功。 至少有些東西,或者可能一切都失敗了。
2
無法辨識的命令。
100
沒有成功。
例如,假設您執行下列命令:
c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c
如果您嘗試取出的其中一個檔案不存在於伺服器上,命令會 傳回 1 ,表示部分成功。