日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【转】VSTS中版本控制系统Git与TFVC的区别

發布時間:2023/12/10 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】VSTS中版本控制系统Git与TFVC的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

VSTS(Visual Studio Team Services)

VSTS簡單說就是微軟TFS(Team Foundation Services)的升級云版,不用像TFS需要在企業內部服務器上部署,并且是免費提供給用戶使用的。

每個有微軟賬號(也是免費注冊的)的用戶都可以申請VSTS,官網申請入口。當然,免費用戶是有一定限制的,比如:每個項目的成員不能超過5個等。不過一般中小型開發項目,5個人也夠用了。

VSTS有一點比GitHub好,免費用戶也可以擁有private空間;GitHub上免費的都是公開的,所有人都能訪問獲取的。所以,既想要免費軟件項目托管平臺,又想要私有項目不公開,VSTS真是一個不錯的選擇。

VSTS功能比較多,作為微軟云優先新時代的產品,應該會一直持續開發改進的。

?

VSTS支持兩種版本控制系統:Git 和 TFVC(Team Foundation Version Control)

在VSTS中新建一個項目時,會遇到版本控制選擇:

Git是默認的版本控制系統,并且是官網推薦使用的,除非是有特殊需求(比如一定要用TFVC的集中式管控)。

Git(分布式)

Git是分布式版本控制系統。分布式相比于集中式的最大區別在于每個開發者在本地都有一份源碼倉庫的備份,開發者可以提交修改集到本地倉庫,并且在斷網的情況下也能執行歷史回溯和比較的功能。Git的分支非常輕便,你可以在本地創建一個私有分支,并且也可以在本地合并分支。不存在中央服務器。不同開發者之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。一般情況下,需要有主開發者來決定合并誰的提交(可以自己解決,也可以要求開發者之間解決以后再重新提交)。分布式的好處是靈活自由,大部分時間可以離線工作。

TFVC(集中式)

Team Foundation Version Control是集中式版本控制系統。典型的集中式版本控制系統,對于項目成員來說,每一個源碼文件的當前版本(服務器最終Check in)有且只有一份(無論是下面哪種工作流模式)。歷史數據僅保存于服務器上,分支創建也只能在服務器上操作。所以,比較、回滾等操作都需要連接服務器。

TFVC有兩種工作流模式:

  • 服務器工作區-?在修改源碼文件之前,必須公開的Check Out源碼文件,以使系統鎖定文件(防止再被其他人Check Out)。這種模式下,大部分操作都是需要連接服務器的。使用服務器工作區的好處是,你可以擴展codebases到很大的程度(每個分支百萬個文件,以及大的二進制文件)。Visual Source Safe,?Perforce, 以及?CVS也是這種工作流模式。
  • 本地工作區-?每個項目成員在本地有一份codebase拷貝(只含最新代碼庫,不包含歷史數據),并且可以在離線模式工作。開發者Check in修改集時,如有沖突,協商解決(比如存在于不同開發者電腦上的同一個文件,提交修改時會沖突,具體采用哪個要靠開發者之間協商)。Subversion也是這種工作流模式。

?

Git與TFVC的比較

范圍TFVCGit
修改集

團隊成員可以同時在各自開發電腦上修改文件。你可以在任何時間上傳修改集。然而,你的上傳可能會被沖突而打斷。

你可以在check in之后修改每個修改集的注釋。你可以鏈接修改集和工作項(work items)或是已經完成的builds。

團隊成員可以同時在各自開發電腦上修改文件。你可以獨立地在自己電腦上創建提交,并貢獻給團隊。在你準備上傳(push)到服務器之前,你必須先下載(pull)最新提交的文件。當你下載(pull)時,可能會被沖突而打斷。

你可以修改本地最新的提交,而不能修改舊的提交。你可以鏈接修改集和工作項(work items)或是已經完成的builds。

你可以通過命令行修改和組合本地提交。

分支

?基于路徑的分支是最常用的分支方式,能夠規避feature變化對軟件發布的風險。典型做法是團隊成員對每一個分支都建立額外的工作區。

每個分支的修改集都是獨立無關的,所以你不用在切換分支前做check in。兄弟分支之間的合并需要一個baseless merging。

你可以可視化觀看分支結構以及修改集在哪里被合并。

?分支是輕量化的以及路徑無關的。很多開發者有時在日常開發中,會為每一個新特性創建分支。你可以從一個分支快速切換到另外一個分支,輕松游刃于各個分支。你可以只在自己電腦上創建分支,并在必要時可以分享給其他成員。

在切換分支之前,你必須做完提交(commit)、分支(branch)、存放(stash)或撤回(undo)。合并是簡單的,并且與分支所依賴的提交無關。

你可以比較不同的分支,以查看哪個提交是在哪個分支上的。

沖突解決你可能需要在你get,check in,merge,unshelve時解決沖突。你可以在Visual Studio中解決所有類型的沖突。你可能需要在你pull,merge時解決沖突。你可以通過命令行或在Visual Studio中解決內容沖突。
文件存儲可以Check in 大二進制文件。可以Check in 小二進制文件(像常規文件一樣操作)。若是大二進制文件,需要用Git-LFS? 來存儲大二進制文件到VSTS。
歷史歷史數據不存在開發電腦中,因此只能在連接服務器時才能查看歷史。你可以在Visual Studio或Web portal中查看歷史。你可以查看誰修改了一行以及何時修改的。歷史數據復制存儲于開發電腦中,因此在沒有連接服務器時也能查看歷史。你可以在Visual Studio或Web portal中查看歷史。你可以查看誰修改了一行以及何時修改的。
標簽你可以通過Visual Studio或命令行來給一個或多個文件加標簽。每個文件的不同版本都可以加標簽。你可以通過命令行來給獨立的提交加標簽。在Visual Studio的history widow可以查看標簽。
回滾你可以回滾一個或多個修改集。你可以還原提交(revert a commit)
擴展本地工作區可用于小型或超大型項目。服務器工作區支持大型擴展(每個分支百萬個文件,以及大的二進制文件)可以快速開始小型項目,但是如果想要擴展成大型項目,你需要提前計劃以便模塊化codebase。你可以在一個項目(project)中創建多個倉庫。???????????????????????????????
?

?

總結

以上是生活随笔為你收集整理的【转】VSTS中版本控制系统Git与TFVC的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。