VS Code 適用的 Looker 擴充功能採用「本機優先」的開發模型。這個模型會維護本機檔案系統、Looker 執行個體的開發模式和遠端 Git 存放區之間的三向關係。
本指南說明擴充功能如何同步處理檔案,以及本機 Git 作業對 Looker 專案的影響。
同步機制
擴充功能會自動管理本機 IDE 與 Looker 伺服器之間的檔案內容同步作業。
開啟檔案 (開啟時讀取)
在本地 IDE 中開啟 .lkml 檔案時,擴充功能會自動從 Looker 執行個體開發模式的已簽出分支中,擷取該檔案的目前版本。確保您一律使用最新版本的程式碼。
儲存檔案 (儲存時寫入)
在本機儲存檔案時 (Mac 上為 Command-S,Windows/Linux 上為 Ctrl+S),擴充功能會立即將本機變更推送至 Looker 伺服器。在開發模式下,您就能在瀏覽器 Looker IDE 中看到這些變更。
處理同步衝突
如果檔案在瀏覽器式 Looker IDE 中編輯時,同時也在 VS Code 中開啟,可能會發生衝突。
根據預設,擴充功能會使用本機 VS Code 版本覆寫 Looker 伺服器上的版本。
不過,如果您已啟用 looker.askBeforeOverwritingRemote 設定,嘗試儲存伺服器上已修改的檔案時,VS Code 會顯示警告訊息。您可以選擇採取下列其中一項行動:
- 查看差異:開啟差異編輯器,比較檔案的遠端和本機版本之間的變更。這個選項可讓您逐行查看及合併變更,解決衝突並將合併後的本機變更同步回 Looker 伺服器。
- 覆寫遠端:以本機 VS Code 版本覆寫 Looker 伺服器上的版本。
- 覆寫本機:以 Looker 伺服器上的版本覆寫本機檔案。
「looker.askBeforeOverwritingRemote」設定預設為停用。
本機 Git 作業
擴充功能會同步處理檔案內容,但您應在本機終端機或本機 IDE 的「Source Control」分頁中,使用標準 Git 指令管理 Git 存放區。
管理分支版本
使用 git checkout 在本機切換分支時,擴充功能會偵測到變更,並自動將 Looker 伺服器上的工作階段切換至相符的分支。
在 Looker 同步處理檔案變更前,VS Code 的 Looker 擴充功能會先確認本機 Git 分支版本是否與 Looker 開發模式分支版本相符,如果不符,系統會自動暫停同步處理,避免跨分支版本覆寫。如果發生不符情況,系統會顯示互動式提示,讓您切換遠端 Looker 工作區或在本機簽出分支,並在對齊後自動使快取檔案雜湊失效,以安全地繼續同步。
Looker 中的 Git 狀態
儲存檔案變更時,系統會將變更同步至 Looker 執行個體,並在瀏覽器型 Looker IDE 中顯示為未提交。如果您在本機環境中使用 Git 提交這些變更,變更會繼續在 Looker IDE 中顯示為未提交,直到您將變更推送至遠端存放區為止。
使用 git push 時,Looker 執行個體會從遠端存放區提取已提交的變更。Looker 執行個體從遠端提取後,您已提交及推送的變更就不會再顯示為未提交。只有儲存在本機但尚未提交及推送的檔案,才會顯示為未提交。
驗證 LookML
每次儲存變更時,擴充功能都會自動執行 Looker LookML 驗證工具。驗證工具傳回的任何語法和模型錯誤,都會顯示在本地 IDE 檔案內。您也可以使用「Looker: Validate LookML」指令面板指令,手動執行 LookML 驗證器,不必儲存檔案。