主頁 > .NET開發 > [Azure Devops] 使用 Azure Repos 管理代碼

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

2021-04-01 15:54:29 .NET開發

1. 什么是 Azure Repos

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

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

即使您只是一個開發人員,版本控制也可以幫助您在修復錯誤和開發新功能時保持井井有條,版本控制保留了您的開發歷史,因此您可以輕松查看甚至回滾到任何版本的代碼,

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

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

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

2. 創建專案

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

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

首先復制下面這個鏈接,然后打開 Visual Studio,隨便創建一個 WPF .Net Framework 專案,

創建專案后在 Visual Studio 右下角找到“添加到源代碼管理器”按鈕,選擇“Git”,

在彈出的創建Git存盤庫對話框選擇“現有遠程”,在 Remote URL 中粘貼剛剛復制的鏈接,點擊創建并推送,

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

重繪 Files 頁面,可以看到剛剛創建的專案已經上傳到 master 分支了,

3. 使用策略保護分支

創建好分支后,代碼就已經在團隊里共享,通常來說團隊中的人都需要修改代碼,但將代碼提交到 master 分之前需要先通過 CodeReview,接下來將介紹如何在 Azure Repos 中通過 Branch Policies(分治策略)保護代碼安全性,

在左側選單中選中 Branches,進入 Branches 頁面后可以看到剛剛創建的 master 分支,點擊右側的”More… “按鈕,然后選擇”Brance policies“進入 master 分支的分支策略頁面,

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

這樣設定完以后,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”,

4. 通過 Pull Request 修改代碼

假設專案里有一個“添加單元測驗”的 PBI 及它的 Task,現在我需要添加單元測驗并修改一些代碼后提交到 master 分支,但之前修改了分支策略后就不可以直接修改代碼,而需要通過 Pull Request,

首先我需要新建分支,然后隨便更新些代碼,然后在 Visual Studio 右下角點擊這個按鈕,

在 “Git 更改” 頁面輸入提交的訊息,并且輸入 #1 #2,關聯 ID 號為 1 和 2 的作業項,然后選中“全部提交并推送”,

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

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

順便一提,如果標題有“[WIP]”,右下角的按鈕會默認選中“創建為草稿”,

Pull request 創建后,在 PR 的詳細頁面可以看到它的內容、是否沖突、關聯的作業項、歷史記錄等,這時候只需要等待一個 code reviewer 審核通過,通過后右上角的藍色按鈕會變成“Complete”,點擊即可完成這個 PR 并將代碼合并到 master 分支,

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

這時候 reviewer 會收到通知要做 review,然后他就可以來看看這個 Pull request 做了些什么,沒問題的話他就可以 Approve 這個 Pull request,

5. 最后

上面就是 Azure Repos 的基本使用方式,對屬性 Github 的開發者來說可能很容易就能上手,更多的使用方式請參考微軟提供的檔案:

Azure Repos Documentation

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/270478.html

標籤:WPF

上一篇:WPF 基礎 2D 圖形學知識 判斷點是否在線段上

下一篇:spire.xls 操作xls時,參考單元格能不能用R1C1格式

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more