Azure DevOps in Action - 使用內建Git Repos
很多人一開始使用Azure DevOps的時候不知道,其實Azure DevOps有內建的Git Repos,也就是說,你根本無需自行建立Git版控環境或伺服器,就可以享有相關的功能。不僅如此,使用Azure DevOps內建的Git Repos還有諸多的好處,像是可以在前面介紹過的Backlogs/Tasks上,直接建立/關聯到版控的Branch(分支),連帶著讓PR(Pull Reuqest)串起整個開發流程。
千萬別小看這件事。這件事是提升你的程式碼品質和控管的一大關鍵,如果沒有使用這個功能是很可惜的。[1]
我們來看,當你在Azure DevOps中建立好一個新的專案之後,可以點選Repos中的Files:
一個新的專案會內建一個空的Git Repos(上圖1),但其實你還可以為專案建立多個Repos(這個以後有機會我們再談)。剛建立好的Repos會如上圖。
你可以很簡單的匯入某一個既有的Repo (例如從GitHub或其他Git Repos)到當前這個Repo中(上圖C)。如果你的用戶端已經有既有的專案(且在用戶端也已經透過git init建立好用戶端版控環境),那你可以透過很簡單的幾個指令,就把用戶端的程式碼推上Azure DevOps雲端中的repos(上圖B),你也可以用各種開發工具以HTTPS或SSH的方式連結到這個Repos(上圖A):
大概主流的開發工具Azure DevOps都支援了。
不管是你要把開發端既有的程式碼推上去、或是Clone(Import)其他Repos、還是直接連上空的Repos…其實都很簡單。
關於Azure DevOps Repos的使用,我自己喜歡的流程是這樣:
1. 先建立好一個Azure DevOps專案
2. 透過上面(上上圖中D所示)的『Initialize with a README or gitignore』功能,先為預設的Repo建立好初始環境
3. 以用戶端的開發工具連上這個Repo,把該Repo clone下來
4. 如此一來就可以在筆電上進行開發了
我們來看一下怎麼做,首先,我們先進行(上圖D的)初始化:
如果你是.net開發人員,你可以在初始化時,選擇Visual Studio(上圖1)的gitignore範本(這會幫助你排除一些不需要簽入上去的檔案,例如.dll)。至於README檔案我是會勾的,他會幫你建立一個markdown格式的README,選好後按下Initialize(上圖2)即可。
你會發現,完成後,repos中已經有初始化的檔案了:
(上圖1)的部分就是自動建立出的gitignore,而Readme.md也為你建立好了(上圖2),接著,就是在你的開發環境,去連上這個Azure DevOps雲端的Repos了。
關於TFVC版控機制
如果你是微軟技術的愛好者,你大概之前就知道,MS早期自己有一套版控機制,是謂TFVC(Team Foundation Version Control)是也,早期我也是採用這個集中式的版控技術,特別是如果你用TFS或早期的VSTS,那當時確實也都是以TFVC為主。
但時間來到了2015,差不多就是在2015年的前後,這幾年MS發生了很大的改變,從這個時間軸開始,MS彷彿走入了另一個平行世界。MS面向社群與open source的改變愈來愈顯著。微軟在面對外部市場與用戶有所改變的同時,其內部也發生許多質變,這一段歷史我們就不談了,但差不多從這個時間點開始,微軟對版控技術的看法也改變了。
時至今日,微軟自己內部採用的版控技術也多是Git,而Azure DevOps的版控環境中,也悄悄的在Azure Repos當中,加上了許多Git相關的服務和整合,同時在微軟的官方文件上,也不乏介紹如何從TFVC轉換到Git版控的方式[2]。今時今日,我們大概幾乎底定是以Git作為未來程式碼版控技術的主軸了。
我們後面要來看,如何從地表最強開發工具,連結雲端的Azure DevOps Repos。
[1] 我知道有一些企業,因為對程式碼的儲存有自己的Policy,所以並不一定方便存放在雲端的Git Repos當中,不過,這個現象愈來愈少見。如今,台灣幾各指標型的大廠,都可以允許把程式碼放到Azure DevOps的Git Repos中了,我想未來會愈來愈普遍。
[2] Migrate from TFVC to Git
https://docs.microsoft.com/zh-tw/azure/devops/learn/git/migrate-from-tfvc-to-git
---------------------------
相關課程:http://www.studyhost.tw/NewCourses/ALM
節錄自『Azure DevOps in Action』
留言