iT邦幫忙

2024 iThome 鐵人賽

DAY 4
1
DevOps

DevOps菜鳥的30天實踐挑戰:從 CI/CD Pipeline 到雲端佈署系列 第 4

Day04 - 使用 Azure DevOps Repos 進行程式碼版本控制

  • 分享至 

  • xImage
  •  

今天,我們將進一步了解 Azure DevOps Repos,並介紹如何在其中使用 Git 進行版本控制。這將有助於團隊協作並且確保我們的程式碼管理更為有效且有條理。

什麼是版本控制?

版本控制是一種協同管理程式碼變更的系統,它能夠幫助開發團隊跟蹤、管理並合併不同成員的程式碼變更。Git 是當今最受歡迎的分散式版本控制系統之一,廣泛應用於全球各個軟體開發專案,而 Azure DevOps Repos 則提供了完整的 Git 儲存庫功能,讓開發者可以輕鬆管理他們的程式碼。

Git 版本控制的優點

  • 分散式版本控制

    每位開發者都擁有完整的程式碼庫副本(clone),因此可以在本地(local)進行所有操作,不需要時刻連接到中央伺服器。這不僅提高了操作效率,也增加了版本控制的可靠性。

  • 強大的分支管理

    Git 的分支管理系統非常輕量且靈活,允許開發者同時在多個分支上進行不同功能的開發,而不會影響主線(main)程式碼。這也使得合併(merge)與回復(rollback)更為容易,有助於提升團隊協作效率。

  • 高效的程式碼合併

    Git 支持多種合併策略,並提供強大的合併工具,即使在多人同時編輯相同文件的情況下,Git 也能有效處理程式碼衝突(conflict),並提供簡單的解決方法。

  • 完整的歷史記錄

    Git 會保存每一次程式碼的提交(commit)歷史,讓開發者可以追溯每個版本的變更內容。這對於排查問題、恢復舊版本或進行審計(audit)都是非常有用的功能。

  • 高效協作工作流

    Pull Request 允許開發者在合併程式碼前進行程式碼審查(review),讓團隊成員可以討論、建議修改,從而提升程式碼品質。

  • 大規模開源支持

    Git 是目前大多數開源專案的首選版本控制工具,開發者可以輕鬆地從 GitHub、GitLab 等平台下載並協作處理各種開源專案。

透過這些功能,Git 不僅適用於個人專案,也能輕鬆應對大規模的團隊合作,成為現代軟體開發不可或缺的一部分。

如何在 Azure Repos 中使用 Git 進行版本控制

※Repo最好用全英文並且避免使用空格與特殊符號

1. 創建一個新專案並初始化 Git 儲存庫 (git init)

  • 創建專案後,進入 Repos,這裡會提示你初始化一個 Git 儲存庫。只需點擊 “Initialize”,即可建立一個空的 Git 儲存庫。
  • 如果有需要,可以在這個步驟選擇語言,會自動產生對應的 .gitinore
    https://ithelp.ithome.com.tw/upload/images/20240918/20169492Bd8ep8FY0d.png

2. 複製 Azure Repos 專案至本地 (git colne)

當專案在 Azure Repos 中創建後,你可以將該專案 Clone 至本地進行開發。這樣可以在本地進行編輯、測試,然後再將更改推送回 Azure Repos。

1.找到專案的 Clone URL

  1. 進入你的 Azure DevOps 組織,選擇你的專案。
  2. 點擊左側選單中的「Repos」。
  3. 在右上角找到並點擊「Clone」按鈕。

https://ithelp.ithome.com.tw/upload/images/20240918/20169492kyTG7Phoat.png

  1. 選擇你偏好的協議(HTTPS 或 SSH)並複製 URL,如果有安裝VS Code也可以直接clone過去。

https://ithelp.ithome.com.tw/upload/images/20240918/20169492uhqWbLXAlZ.png

2.在本地Clone專案

  1. 打開終端機(Windows 的命令提示字元或 macOS/Linux 的終端機)。
  2. 切換到你想要儲存專案的資料夾。
  3. 執行以下命令,將 URL 換成剛剛複製的專案 URL(系統可能會請你登入):
# 切換資料夾
cd <你的資料夾路徑>
# clone 專案
git clone <你的專案URL>

例如:

git clone https://dev.azure.com/你的組織/你的專案/_git/你的專案

成功後,你會看到一個新的資料夾,裡面包含了該專案的所有文件。現在就可以開始在本地進行開發並管理版本。

https://ithelp.ithome.com.tw/upload/images/20240918/20169492GvxRNsLMwf.png

3. 創建與管理分支

  • 分支 是 Git 的核心功能之一,它允許開發者在獨立的分支上工作,不會影響主分支。
  • 你可以在 Azure Repos 的網頁介面上輕鬆創建新分支:

https://ithelp.ithome.com.tw/upload/images/20240918/201694924eT3Qve77N.png

  • 或者在本地執行以下命令來創建分支:

    # 創建並切換到新分支
    git checkout -b feature/your-feature-name
    
    # 推送新分支到遠端
    git push -u origin feature/your-feature-name
    

https://ithelp.ithome.com.tw/upload/images/20240918/20169492Q1XrhTybqX.png

4. 將程式碼推送到 Azure Repos (git push)

Clone專案後,當你完成本地的開發修改(這邊我新增一個 day04.py ),可以將變更推送回 Azure Repos,以下是基本流程:

  1. 新增檔案至暫存區:在對專案進行修改後,使用以下命令將變更的檔案加入 Git 的暫存區:

    . 代表所有檔案,通常不建議直接使用。

    git add .
    
  2. 提交變更:將暫存區中的檔案提交到本地的 Git 儲存庫,並撰寫提交訊息:

    git commit -m "commit message"
    
  3. 推送到 Azure Repos:最後,使用以下命令將本地的變更推送至 Azure Repos 的遠端儲存庫:

    git push origin
    

通過這個步驟,你的程式碼就會成功推送回 Azure Repos,並能與團隊成員共享及協作。

https://ithelp.ithome.com.tw/upload/images/20240918/20169492ZKtl6FFcFg.png

5. 提交 Pull Request 進行程式碼合併

  • 當你完成一項功能後,可以透過 Pull Request (PR) 來請求將分支上的變更合併到主分支。在合併之前,團隊成員可以進行程式碼審查,確保程式碼品質。
  • 在 Azure Repos 中,你可以直接透過網頁介面創建 PR,指定要合併的分支,並添加審查人員。

https://ithelp.ithome.com.tw/upload/images/20240918/20169492OohfyMwJLu.png
https://ithelp.ithome.com.tw/upload/images/20240918/20169492geS0CkfyGu.png

6. 版本控制策略與協作工作流

  • 為了保持程式碼庫的穩定性,建議團隊設定分支保護規則,例如:只有在所有 PR 審查通過後才允許合併到主分支。
  • 你也可以啟用自動化的測試和佈署流程,讓每個 Pull Request 都會觸發 CI/CD Pipeline,進一步保證程式碼的可靠性。
    https://ithelp.ithome.com.tw/upload/images/20240918/20169492feM0ipBXKc.png
    圖片來源

小結

Azure Repos 為開發團隊提供了強大且靈活的 Git 版本控制功能,讓程式碼管理變得更為簡單,在 DevOps 流程中,Git 作為一個強大的版本控制系統,扮演了關鍵角色。透過分支策略、Pull Request 和自動化工作流的結合,我們可以確保程式碼的品質並加速開發週期,開發與運維可以無縫協作。


預告

接下來,明天我們將討論如何在 Azure Pipelines 中實現持續整合(CI),進一步加速軟體開發的交付速度~

Ready to level up? See you next commit! 😎


上一篇
Day03 - 使用 Azure DevOps 加速交付
下一篇
Day05 - 使用 Azure DevOps Pipelines 持續集成 (CI)
系列文
DevOps菜鳥的30天實踐挑戰:從 CI/CD Pipeline 到雲端佈署30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言