VSTS(Visual Studio Team Services)
VSTS簡單說就是微軟TFS(Team Foundation Services)的升級雲版,不用像TFS須要在企業內部服務器上部署,而且是免費提供給用戶使用的。html
每一個有微軟帳號(也是免費註冊的)的用戶均可以申請VSTS,官網申請入口。固然,免費用戶是有必定限制的,好比:每一個項目的成員不能超過5個等。不過通常中小型開發項目,5我的也夠用了。git
VSTS有一點比GitHub好,免費用戶也能夠擁有private空間;GitHub上免費的都是公開的,全部人都能訪問獲取的。因此,既想要免費軟件項目託管平臺,又想要私有項目不公開,VSTS真是一個不錯的選擇。apache
VSTS功能比較多,做爲微軟雲優先新時代的產品,應該會一直持續開發改進的。服務器
VSTS支持兩種版本控制系統:Git 和 TFVC(Team Foundation Version Control)
在VSTS中新建一個項目時,會遇到版本控制選擇:less
Git是默認的版本控制系統,而且是官網推薦使用的,除非是有特殊需求(好比必定要用TFVC的集中式管控)。分佈式
Git(分佈式)
Git是分佈式版本控制系統。分佈式相比於集中式的最大區別在於每一個開發者在本地都有一份源碼倉庫的備份,開發者能夠提交修改集到本地倉庫,而且在斷網的狀況下也能執行歷史回溯和比較的功能。Git的分支很是輕便,你能夠在本地建立一個私有分支,而且也能夠在本地合併分支。不存在中央服務器。不一樣開發者之間只需把各自的修改推送給對方,就能夠互相看到對方的修改了。通常狀況下,須要有主開發者來決定合併誰的提交(能夠本身解決,也能夠要求開發者之間解決之後再從新提交)。分佈式的好處是靈活自由,大部分時間能夠離線工做。模塊化
TFVC(集中式)
Team Foundation Version Control是集中式版本控制系統。典型的集中式版本控制系統,對於項目成員來講,每個源碼文件的當前版本(服務器最終Check in)有且只有一份(不管是下面哪一種工做流模式)。歷史數據僅保存於服務器上,分支建立也只能在服務器上操做。因此,比較、回滾等操做都須要鏈接服務器。ui
TFVC有兩種工做流模式:url
- 服務器工做區- 在修改源碼文件以前,必須公開的Check Out源碼文件,以使系統鎖定文件(防止再被其餘人Check Out)。這種模式下,大部分操做都是須要鏈接服務器的。使用服務器工做區的好處是,你能夠擴展codebases到很大的程度(每一個分支百萬個文件,以及大的二進制文件)。Visual Source Safe, Perforce, 以及 CVS也是這種工做流模式。
- 本地工做區- 每一個項目成員在本地有一份codebase拷貝(只含最新代碼庫,不包含歷史數據),而且能夠在離線模式工做。開發者Check in修改集時,若有衝突,協商解決(好比存在於不一樣開發者電腦上的同一個文件,提交修改時會衝突,具體採用哪一個要靠開發者之間協商)。Subversion也是這種工做流模式。
Git與TFVC的比較
|
參考:https://docs.microsoft.com/zh-cn/vsts/repos/tfvc/comparison-git-tfvc?view=vsts