了解 Git
諸如 Git 之類的版本控制工具,可讓您在工作時追蹤和管理檔案的變更。 您可以儲存相同檔案的多個版本、檢視您所做變更的歷程記錄,並與其他人共同作業。
Git 是最受歡迎的版本控制工具之一。 在此單元中,您將了解 Git,以及其如何在製作和使用 Bicep 程式碼時提供協助。
什麼是版本控制和 Git?
版本控制是您用來維護檔案變更歷程記錄的一種做法。 有許多不同的版本控制系統存在,但其通常會具有一些核心功能:
- 追蹤您對檔案所做的變更。
- 檢視檔案的歷程記錄,如果您需要還原所做的變更,則可回到較舊的版本。
- 同時使用多個版本的檔案。
- 藉由共用您的程式碼和變更,與其他小組成員共同作業。
大部分的版本控制系統都適用於所有檔案類型,但已針對文字檔進行優化。
注意
版本控制有時也稱為原始程式碼管理,也就是 SCM。
Git 是一個開放原始碼的版本控制系統。 您可以使用 Git 來建立「存放庫」,以維護歷程記錄和追蹤變更。 您可以針對每個專案使用不同的存放庫,或者可以選擇針對您的所有 Bicep 程式碼使用單一存放庫。
Git 如何協助您的 Bicep 程式碼?
Bicep 程式碼會保留在文字檔中,因此非常適合許多版本控制系統。 版本控制可協助解決您在撰寫 Bicep 程式碼時可能遇到的常見案例,例如:
- 當您對 Bicep 檔案進行變更時,通常需要復原變更,或檢視檔案的歷程記錄,以查看您過去所做的變更。 您可以在變更每個檔案時建立檔案的複本,但這種方法很快就難以管理。 Git 提供的功能可追蹤您對每個檔案所做的變更。
- 您必須對 Bicep 檔案進行重大變更,這需要一些時間來準備和測試。 同時,您必須存取目前「已知正確」的 Bicep 檔案版本,才能繼續部署。 Git 提供「分支」和「合併」的功能,因此您可以使用多個版本的檔案,並在它們之間快速切換。
- 您可以與小組中其他要對您 Bicep 程式碼進行變更的人合作。 您需要追蹤進行每個變更的人員。 如果兩個變更彼此衝突,您必須具有可解決衝突的流程。 Git 提供功能強大的共同作業功能。
每個存放庫的位置為何?
Git 是「分散式」版本控制系統,這表示您可以在電腦和伺服器上擁有 Git 存放庫的多個複本。 這讓 Git 成為絕佳選擇,最適合與小組成員共同作業以共用和撰寫您的 Bicep 程式碼。
您可以使用 GitHub 和 Azure Repos 之類的線上服務,與您的小組合作處理共用程式碼。 藉由使用這些服務,您也可以開始建置自動化部署管線。 您將在未來的課程模組中了解那些管線。
Git 如何使用資料夾?
Git 存放庫會以您電腦上的資料夾來表示。 當您使用存放庫時,就像是使用檔案中的任何其他資料夾。 您可以使用任何想要的工具來檢視和編輯檔案,不過,在此課程模組中,您將使用 Visual Studio Code。
Git 會將存放庫的一些中繼資料儲存在存放庫資料夾中特殊隱藏資料夾內。 當您第一次建立存放庫時,您需要將存放庫「初始化」,以建立中繼資料。 之後,您就能正常使用資料夾。 Git 的工具可協助您維護存放庫中的檔案版本。 您將在此課程模組中深入了解 Git 的命令。
我將需要哪些工具?
在此課程模組中,您將使用兩個工具來處理 Git 存放庫:Visual Studio Code 和 Git。
Visual Studio Code
Visual Studio Code 是適用於 Windows、macOS 和 Linux 的免費程式碼編輯器。 其提供功能來處理 Bicep 程式碼,以及其他原始程式碼和文字檔。 例如,藉由安裝適用於 Visual Studio Code 的 Bicep 延伸模組 \(英文\),您可以獲得 Bicep 的編輯體驗,其中包括自動完成、IntelliSense,以及如何改進您程式碼的建議。
如果您想要,您可以使用其他文字編輯器來撰寫 Bicep 程式碼,但 Visual Studio Code 是絕佳的選擇,因為其不僅具有 Bicep 支援,還會與 Git 整合。
Git
Git 是以命令列工具為基礎,而您可以在線上找到的大部分檔案和範例都使用 Git 命令列介面 (CLI)。 在本課程模組中,我們將使用混合的 CLI 命令和 Visual Studio Code 來搭配 Git 使用。 無論您使用哪一種工具,都可以使用相同的基礎 Git 存放庫。
提示
當您熟悉如何使用 Git 後,將需要了解一些更進階的 Git CLI 命令。 稍後在此課程模組中,我們會連結到一些資源,讓您能夠繼續探索 Git 及其多項進階功能。
您必須將 Git 與 Visual Studio Code 分開安裝。 您將在下一個單元中了解如何做到這一點。 安裝 Git 之後,Visual Studio Code 就會偵測到 Git,並自動啟用其 Git 整合。