選擇您專案的正確版本控制
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 |Visual Studio 2022
無論您的軟體專案是大或小,儘快使用版本控制是個好主意。 Azure Repos 支援兩種類型的版本控制:Git 和 Team Foundation 版本控制 (TFVC)。
我應該使用哪個版本控制系統?
Git 是新專案的預設版本控制提供者。 您應該在專案中使用 Git 進行版本控制,並開始將現有的 TFVC 專案移至 Git。 TFVC 被視為功能完成。 Azure DevOps 會維持與 TFVC 的相容性,但 Git 將會收到所有未來的投資。
您可以在相同的專案中搭配 Git 使用 TFVC 存放庫,因此如果您需要集中式版本控制,稍後就能輕鬆地新增 TFVC。 若要為現有項目 設定新的存放庫類型,請使用這些指示。
Git (分散式)
Git 是分散式版本控制系統。 每個開發人員其開發電腦上都有來源存放庫的複本。 開發人員可以在其開發電腦上認可每一組變更,並執行版本控制作業 (例如歷程記錄與比較),而不需要網路連線。 分支是輕量型。 當您需要切換內容時,您可以建立私人本機分支。 您可以從一個分支快速切換到另一個分支,在程式碼基底的不同變化之間轉換。 之後,您可以合併、發佈或處置分支。
注意
Visual Studio、Azure DevOps Services 和 Azure DevOps Server 中的 Git 是標準 Git。 您可以使用 Visual Studio 搭配第三方 Git 服務,也可以搭配 Azure DevOps Server 使用第三方 Git 用戶端。
如需詳細資訊,請參閱 Git 和 Azure Repos。
TFVC (集中式)
Team Foundation 版本控制 (TFVC) 是集中式版本控制系統。 一般而言,在小組成員的開發電腦中,每個檔案只會有一個版本。 歷程記錄資料只會保留在伺服器上。 分支以路徑為基礎,並建立於伺服器上。
TFVC 有兩個 工作流程模型:
伺服器工作區 - 在變更之前,小組成員公開地簽出檔案。 大部分作業要求開發人員連線到伺服器。 此系統有助於鎖定工作流程。 其他以這種方式運作的系統包括 Visual Source Safe、Perforce 和 CVS。 使用伺服器工作區,您可以相應增加至非常大的程式代碼基底,每個分支和大型二進位檔有數百萬個檔案。
本機工作區 - 每個小組成員都會使用最新版本的程式代碼基底複本,並視需要脫機運作。 開發人員簽入變更並在必要時解決衝突。 以這種方式運作的另一個系統是 Subversion。
如需詳細資訊,請參閱什麼是 Team Foundation 版本控制?
從 TFVC 移至 Git
如果您有現有的 TFVC 存放庫,您可以使用 git-tfs 工具將其移轉至 Git 存放庫。 此工具可讓您 在幾個命令中,將 TFVC 存放庫移轉至 Git 存放庫 。
Git 和 TFVC 功能
下表摘要說明 TFVC 和 Git 如何支援版本控制的主要功能。
功能
TFVC
Git
變更
小組成員可以同時變更其開發機器上的檔案。 當您建立變更集時,您會 將變更 集上傳至伺服器。 您可以隨時上傳變更。 不過,您可能會因 衝突而中斷。
您可以在簽入變更集之後變更批註。 您可以將變更集連結至工作專案,並將其與已完成的組建產生關聯。
小組成員可以同時變更其開發機器上的檔案。 您會在開發計算機上建立認可,而不受將認可貢獻給小組。 當您準備好時,您必須先提取最新的認可,才能將 您上傳(推送)到伺服器。 當您提取時,可能會因衝突而中斷。
您可以修改最新的本機認可。 您無法變更較舊的認可。 您可以將認可連結至工作專案,並將其與已完成的組建產生關聯。
您可以從命令提示字元修改和合併本機認可。
分支
路徑型分支大部分是用來隔離功能小組和發行之間變更風險的長期建構。 小組成員通常會針對他們處理的每個分支設定不同的工作區。
每個分支中的變更彼此獨立,因此您不需要在從一個分支切換到另一個分支之前先簽入。 在同層級分支之間合併需要無基底合併。
您可以取得分支結構的視覺效果,以及變更集已合併的位置。
請參閱使用分支來隔離 Team Foundation 版本控制 中的風險。
分支是輕量型且與路徑無關。 許多開發人員會針對他們撰寫的程式代碼,有時每天為每個新功能建立分支。 您可以從一個分支快速切換到另一個分支,在程式碼基底的不同變化之間轉換。 您可以建立只存在於開發電腦上的分支,並在準備好時共享它們。
在切換分支之前,您必須認可、分支、隱藏或復原變更。 合併是簡單且獨立於分支所依據的認可。
您可以比較分支,以查看哪些分支上存在哪些認可。
衝突解決
當您取得、簽入、合併或未維持時,可能必須 解決衝突 。 您可以在 Visual Studio 中解決所有類型的衝突。
當您提取或合併時,可能必須解決衝突。 您可以從 Visual Studio 或命令提示字元中解決內容衝突。
檔案儲存體
您可以簽入大型二進位檔。 您也可以使用 NuGet 組合或做為替代方案。
您可以像一般檔案一樣簽入小型二進位檔。 使用大型二進位檔時,請使用 Git-LFS 將大型二進位文件儲存在 Azure Repos 中。
歷史
檔案歷程記錄不會在用戶端開發計算機上複寫,因此只有在您連線到伺服器時才能檢視。 您可以在 Visual Studio 和入口網站上檢視歷程記錄 。 您可以批注檔案以查看誰變更了一行,以及變更它時。
檔案歷程記錄會在用戶端開發計算機上複寫,即使未連線到伺服器,也可以檢視。 您可以在 Visual Studio 和入口網站上檢視歷程記錄。 您可以批注檔案以查看誰變更了一行,以及變更它時。
標記您的檔案
您可以從 Visual Studio 或命令提示字元將標籤 套用至一或多個檔案的版本。 每個檔案都可以將標籤套用至不同的版本。
您可以從命令提示字元將標記套用至個別認可。 在 Visual Studio 歷程記錄視窗中檢視標籤。
回復變更
您可以 復原一或多個變更集
您可以還原認可。
調整
您可以使用本機工作區來處理小型或非常大規模的專案。 使用 伺服器工作區支援大規模 (每個分支和大型二進位檔數百萬個檔案) 專案。
您可以快速開始小型專案。 您可以相應增加至非常大的專案,但您必須事先規劃將程式代碼基底模組化。 您可以在專案中建立多個存放庫。
伺服器
下表摘要說明每個版本控制系統所支援伺服器可用的功能。
功能
TFVC
Git
伺服器
Azure DevOps Services、Azure DevOps Server
Azure DevOps Services、Azure DevOps Server 和 Git 第三方服務
警示
小組成員可以在 簽入時收到電子郵件警示。
當認可推送至伺服器時,小組成員可以接收電子郵件警示。
稽核能力
您可以識別哪些使用者已推送認可。 (任何人都可以聲稱任何身分識別為作者或認可者。您可以識別何時進行變更,以及使用歷程記錄、比較和標註變更的內容。
組建 (由 TFBuild 自動化)
您可以使用所有 TFBuild 功能,在專案集合內建置您想要的任何內容組合。
您可以使用大部分的 TFBuild 功能一次建置一個專案,一次建置一或多個存放庫。
程式碼檢閱
請參閱 Devops 開發人員生活中的一天:暫停工作、修正 Bug,以及進行程式代碼檢閱。 如需更輕量的討論,您也可以從入口網站評論和傳送有關變更集的電子郵件。
請參閱 檢閱提取要求。 如需更輕量的討論,您也可以從入口網站評論並傳送有關認可的電子郵件。
檔案
每個專案都包含單一根路徑下的所有檔案(例如: $/FabrikamTFVC)。 您可以在 檔案層級套用許可權 。 您可以 鎖定檔案。
您可以在入口網站上瀏覽檔案,並在 Visual Studio 中使用 原始檔控制總管 。
您的專案只存在於一部伺服器上。
每個專案都可以包含一或多個 Git 存放庫,而每個 Git 存放庫可以包含一或多個分支。 您可以套用的最細微許可權是存放庫或分支。 檔案無法鎖定。
您可以在入口網站上瀏覽檔案。
您可以將認可推送至多個遠端存放庫,例如,將認可推送至專案存放庫和裝載於 Azure 上的網站。
質量閘門
您可以使用持續整合 (CI) 組建、閘道簽入組建和簽入原則。
您可以透過 分支原則使用 CI 組建和閘道簽入組建。
用戶端
下表摘要說明視您選取的版本控制系統而定,可用的客戶端支援功能。
功能
TFVC
Git
用戶端軟體
Visual Studio
Visual Studio、Visual Studio Code、Eclipse 和其他第三方工具
檔案
您可以使用 Windows 檔案總管 或命令提示字元來瀏覽檔案。
管理開發電腦上的工作
變更、認可和分支頁面。
暫停您的工作
您可以從 [我的工作] 頁面暫停工作,或在 [擱置的變更] 頁面上擱置您的變更。 如需詳細資訊,請參閱 暫停您的工作和管理擱置集。
您可以從 Visual Studio 或命令提示字元建立分支,或從命令提示字元隱藏。
Visual Studio 相容性
您可以使用所有支援的 Visual Studio 版本。
您可以使用所有支援的 Visual Studio 版本。
入口網站
您可以瀏覽程式代碼基底(包括分支)、檢視歷程記錄、批注和批注變更集和擱置集,以及執行其他工作,例如特定下載程式代碼基底部分做為 .zip 檔案。
您可以瀏覽程式代碼基底、檢視歷程記錄、比較分支、批注和批注認可,以及執行其他工作,例如特定下載程式代碼基底的部分做為 .zip 檔案。
遷移
若要瞭解如何從 TFVC 移轉至 Git,請參閱 從 TFVC 移轉至 Git。