本篇參考:
https://code.visualstudio.com/docs/editor/versioncontrol
https://git-scm.com/book/zh/v2
salesforce作為雲平臺,相信很多人開發都很爽,有啥需求在開發sandbox開發, outbound changeset 或者通過ant migration tool部署到相應的SIT或者UAT環境,測試通過上線~~~
可能有很多人做salesforce做了好多年都沒有使用過程式碼控制工具(這裡使用的是git),因為在專案中好像並不需要用到,使用程式碼控制工具有時候是一個很雞肋的操作,徒增工作量,得不償失。本人在4年多的salesforce專案開發中也只有2次的專案使用到了git作為程式碼管理。那麼問題來了,什麼場景下推薦使用程式碼管理呢?
1. 專案很大,瀑布模型進行管理,拆分成很多個功能塊,不同的功能塊不同的團隊成員去協作開發,上線前可能基於設計有相關的修改,並希望對修改內容做出相關的追蹤或者保證相關的機能不會被遺漏掉等;
2. 你作為一個乙方人員,很幸運的中標做了甲方公司二期/三期的專案。公司現行系統還有其他公司或者團隊去進行維護,針對緊急bug進行hotfix,但是 hotfix內容並不會同步的部署到你方的sandbox中。你方進行UAT階段或者部署操作,需要將程式碼和生產程式碼或者UAT環境比較,遇見不同或者衝突地方(不是你方團隊成員更改內容),需要了解此程式碼是否為需要部署到生產或者是否需要merge的內容,這個時候你不能輕易的直接將全量資源直接deploy,而是需要先比對每個你們的改動與現行系統的區別,確定是你方更改才上傳,不確定你方更改需要討論是否上傳。
當然,以上總結的並不全面,只是可能想到的常見的兩點。很多人的專案可能並不涉及到原始碼管理,因為可能專案的團隊直接從0接觸專案或者即使二期三期也是在客戶現場辦公,有啥需求改動內部群裡直接吼一聲,大家都比較清楚,所以是否使用原始碼管理,因專案而異,因實際場景而異。接下來的內容為掃盲篇,內容很簡單,也並不全面,起到拋磚引玉作用,使用原始碼管理工具的小夥伴們僅供參考。
一. Git
上方的連線中有針對git使用的官方的中文文件,這裡只是簡單的描述即可,感興趣的詳細檢視官方文件。這裡先聊一下 Git管理中檔案的三種狀態。
- 已提交:資料已經安全的提交到了本地的倉庫。
- 已修改:檔案進行了修改,還沒有放到本地倉庫。
- 已暫存:將修改的檔案進行了標記,檔案還沒有提交到本次倉庫,但是下次提交操作會將標記的檔案提交到本地的倉庫。
根據這三種狀態,我們可以理解成 git資源具有三個階段。
- 本機工作區:對專案某個版本提取出來的內容,通常我們在工作區進行修改檔案操作。
- 暫存區快取路徑:對工作區修改檔案需要提交到資料庫的檔案進行打標記,git的術語管他叫索引。
- Git本地倉庫:用來進行儲存專案的後設資料和物件。如果從其他的計算機克隆倉庫的時候,克隆的就是本地倉庫的內容。這部分很重要
當我們本地倉庫的內容ready以後,我們就可以對遠端的資源庫進行關聯,然後push到遠端資源庫即可。在git中我們可以使用指令或者圖形介面的方式對資源進行操作,詳情檢視上方的官方文件介紹,這裡不再詳細展開。
二. Git在 VS Code的配置及使用
1. 當我們開啟vs code,沒有進行任何版本控制工具情況下以及沒有安裝git情況下,開啟標紅的區域,他會提示你要先安裝git,OK,接下來我們安裝git
2. 下載git。下載連結為:https://git-scm.com/downloads,本人電腦windows,下載以後進行正常步驟安裝即可,以下為其中一步的截圖。
3. 安裝環境變數,電腦中安裝的git位置為:C:\git_install\,配置的環境變數位置為:C:\git_install\bin
4. 開啟cmd,輸入 git --version 如果正常配置完環境變數會在任意的目錄下會展示版本,git在vs code中的版本需要在2.0以上。
5. ctrl + shift + p 選擇 sfdx:Create Project With Manifest,模板按照專案要求選擇即可,demo中選擇的是Standard,然後專案名選擇的是 MY_DEV4. mainfest目錄下的package.xml,選擇 sfdx:retrieve source in manifest from org將專案上程式碼檢索到本地。
6. 切換到source control以後點選 Initialize Repository,點選以後很多資源便會在 changes區域下。點選按鈕以後預設會建立一個master的本地分支。
7. git最開始沒有資源,所以我們最開始可以將全部的資源點選+號上傳到 Stage Change區域
8. 輸入相關的comments以後點選 √進行 commit操作。點選commit以後資源便會進入了本地倉庫。
9. 我們使用git不可能只是針對於本機操作,當在本機準備妥當以後需要和伺服器的資源庫進行關聯,上傳到指定的資源庫以便其他的團隊成員可以獲取到最新的上傳的元件資源資訊。當我們點選三個點以後的 git push以後,因為沒有設定遠端的資源庫站點,點選Add Remote
10. 這裡輸入 配置的一個資源庫,假定我們建立的是一個名字叫做salesforce的資源庫,裡面最開始沒有任何的資源,這裡每個人可以設定不同的資源庫的名稱。
下圖中為在github上建立一個資源庫,不同公司可能使用不同工具進行管理。
二級彈出來打一下 origin,這裡可以打其他的名字,用於你pull push的時候的關鍵字,下面會有簡單的描述
如果我們配置完想要更改或者想要知道哪裡配置的,就找到這個根目錄,然後有一個 .git的隱藏目錄,開啟config檔案。
config檔案開啟便會有一些基本的配置,我們如果需要更改可以直接更改裡面的內容資訊
重新點選push按鈕,然後彈出一個modal選擇OK,這裡貌似有一個需要輸入賬號密碼的流程,因為忘記截圖,這裡不在展示圖片,正常輸入git的賬號密碼即可。
11. 找到git對應的資源庫,我們會發現資源都已經上去了。這種就可以作為master分支,作為最基礎的版本進行merge,後期我們可以以它作為源,進行建立feature操作,用於團隊成員基於不同功能分工的協同操作。
12. 我們建立一個feature1的branch,用來某個功能的增強,這個feature1僅處理feature1對應的功能項。
13. VS code端建立對應的分支,並且從遠端分支拉取最新的資源。其中 git checkout -b 相當於兩個 git 操作,即git branch:建立一個分支, git checkout: 切換一個分支,建立以後也可以使用git switch進行切換。 git pull origin + 遠端的branch 名稱用於從遠端資源庫中獲取最新的資源,這裡的origin為上面的配置項,如果上面配置其他,這裡也修改成其他。
除了使用指令之外,VS code也提供了圖形介面的操作。
14. 將需要上傳的資源從 changes區域轉換到stage change區域,然後填寫message點選對號進行commit;點選commit以後點選push按鈕提交到遠端分支。
15. 先點選pull request,然後點選new pull request以後進行分支與master的比較,確定都是自己的改動以後,點選create new pull request即完成了一次 分支 merge到 master的流程。
16.點選merge以後,改動的程式碼即merge到master資源庫中了。
至此,一個簡單的 git進行原始碼控制的流程結束。
總結:篇中簡單的介紹了git的安裝以及 git如何在vs code中配置,這個操作不僅是針對於salesforce,其他的語言都可以使用 git進行原始碼控制操作,所以網上關於git的配置和操作很多。本篇淺入淺出,純屬拋磚引玉,感興趣的小夥伴可以檢視上方的官方文件或者其他資源進行深入學習。篇中有錯誤地方還請指出,有不懂的歡迎留言。