天天看點

[Azure DevOps] 使用 Azure Repos 管理代碼

[Azure DevOps] 使用 Azure Repos 管理代碼

1. 什麼是 Azure Repos

Azure Repos 是一組版本控制工具,可用于管理代碼。無論您的軟體項目是大型項目還是小型項目,都應盡快使用版本控制。

版本控制系統是可幫助您跟蹤随時間變化對代碼所做的更改的軟體。在編輯代碼時,您告訴版本控制系統對檔案進行快照。版本控制系統會永久儲存該快照,以便以後需要時可以重新調用它。使用版本控制來儲存您的工作并協調整個團隊中的代碼更改。

即使您隻是一個開發人員,版本控制也可以幫助您在修複錯誤和開發新功能時保持井井有條。版本控制保留了您的開發曆史,是以您可以輕松檢視甚至復原到任何版本的代碼。

Azure Repos提供兩種類型的版本控制:

  • Git:分布式版本控制
  • Team Foundation版本控制(TFVC):集中式版本控制

上面是官方文檔的内容。雖然給出了兩個選項,但現在大部分人都對 Git 比較熟悉,我也假設讀者對 Git 有一定了解而無需多做解釋。

2. 建立項目

[Azure DevOps] 使用 Azure Repos 管理代碼

在上一篇文章裡我已經建立了一個項目并且選擇了 Git 作為版本控制方式,在 Azure Devops 左邊菜單選中 “Files” 進入檔案頁面,首先看到的就是上圖這樣的畫面。可以看到除了剛建立的存儲庫,還可以添加新的存儲庫或導入其它存儲庫。這篇文章我将配合最新版本的 Visual Studio 16.9 從頭開始建立項目并介紹 Azure Repos 的基本功能。

因為現有的視訊和教程幾乎都是圍繞 Azure 和 Asp.net 講解 Azure Repos 和 Pipelines,是以我特地選擇 WPF 應用來實作同樣的功能。

首先複制下面這個連結,然後打開 Visual Studio,随便建立一個 WPF .Net Framework 項目。

[Azure DevOps] 使用 Azure Repos 管理代碼

建立項目後在 Visual Studio 右下角找到“添加到源代碼管理器”按鈕,選擇“Git”。

[Azure DevOps] 使用 Azure Repos 管理代碼

在彈出的建立Git存儲庫對話框選擇“現有遠端”,在 Remote URL 中粘貼剛剛複制的連結。點選建立并推送。

[Azure DevOps] 使用 Azure Repos 管理代碼

完成後,Visual Studio 右下角應該是這個樣子,代表現在是 wpf 存儲庫的 master 分支。

[Azure DevOps] 使用 Azure Repos 管理代碼

重新整理 Files 頁面,可以看到剛剛建立的項目已經上傳到 master 分支了。

[Azure DevOps] 使用 Azure Repos 管理代碼

3. 使用政策保護分支

建立好分支後,代碼就已經在團隊裡共享。通常來說團隊中的人都需要修改代碼,但将代碼送出到 master 分之前需要先通過 CodeReview。接下來将介紹如何在 Azure Repos 中通過 Branch Policies(分治政策)保護代碼安全性。

在左側菜單中選中 Branches,進入 Branches 頁面後可以看到剛剛建立的 master 分支。點選右側的”More… “按鈕,然後選擇”Brance policies“進入 master 分支的分支政策頁面。

[Azure DevOps] 使用 Azure Repos 管理代碼

如下圖所示,在 Branch Policies,打開“Require a minimum number of reviewers”選項,将“Minimum number of reviewers”這是為 1,打開“When new changes are pushed:”并選中“Reset all code reviewer votes”。

[Azure DevOps] 使用 Azure Repos 管理代碼

這樣設定完以後,master 分支就不能删除,并且隻能通過 Pull Request 修改;最少需要一個 Code reviewer;PR 每次發生更改都重置代碼審閱者的投票。

下面還可以選中“Check for linked work items”,避免無緣無故的代碼送出。

“Build Validation”涉及到 Pipelines 的内容,下一篇再解釋。

最後添加一些 Code reviewer,Optional 辨別可選的,即如果有多個 Code reviewer,隻需要其中一個通過就可以簽入到 master 分支。最好取消“Allow requestors to approve their own changes”。

[Azure DevOps] 使用 Azure Repos 管理代碼

4. 通過 Pull Request 修改代碼

假設項目裡有一個“添加單元測試”的 PBI 及它的 Task,現在我需要添加單元測試并修改一些代碼後送出到 master 分支。但之前修改了分支政策後就不可以直接修改代碼,而需要通過 Pull Request。

[Azure DevOps] 使用 Azure Repos 管理代碼

首先我需要建立分支,然後随便更新些代碼。然後在 Visual Studio 右下角點選這個按鈕。

[Azure DevOps] 使用 Azure Repos 管理代碼

在 “Git 更改” 頁面輸入送出的消息,并且輸入 #1 #2,關聯 ID 号為 1 和 2 的工作項。然後選中“全部送出并推送”。

[Azure DevOps] 使用 Azure Repos 管理代碼

然後回到 Azure Devops,在左側菜單選中 Pull requests,在 Pull requests 頁面可以看到系統貼心地提示我要不要建立一個 Pull request,從了它,點選“Create a pull request”。

[Azure DevOps] 使用 Azure Repos 管理代碼

在建立 Pull request 的頁面可以看到這個 PR 有 1 個送出并修改了 9 個檔案,系統已經貼心幫我填好 Title,并關聯了兩個工作項。點選“Create”建立完成 Pull request 的建立。

[Azure DevOps] 使用 Azure Repos 管理代碼

順便一提,如果标題有“[WIP]”,右下角的按鈕會預設選中“建立為草稿”。

Pull request 建立後,在 PR 的詳細頁面可以看到它的内容、是否沖突、關聯的工作項、曆史記錄等。這時候隻需要等待一個 code reviewer 稽核通過,通過後右上角的藍色按鈕會變成“Complete”,點選即可完成這個 PR 并将代碼合并到 master 分支。

[Azure DevOps] 使用 Azure Repos 管理代碼

也可以點選右上角的“Set auto-complete”按鈕,設定為當稽核通過後馬上自動完成。可以選中“Complete associated work items after merging”,這樣 Pull request 完成後管理的 work item (在這裡隻有 Task 會自動完成,PBI 還是需要人手操作)也會被自動完成。

[Azure DevOps] 使用 Azure Repos 管理代碼

5. 最後