如果您有連結至 Git 存放區的 LookML 專案,建議將該專案的 LookML 移至新的存放區。
解決這個問題的方法有兩種,詳情請見以下各節:
- 重設 Git 連線:這個簡單的解決方案可保留 Looker 中的所有個人和共用分支,適合大多數用途。
- 複製 Git 存放區:如果您需要立即透過 Git 供應商的使用者介面查看過往使用過的所有分支的完整記錄,建議採用這項進階解決方案。
簡單解決方法:重設 Git 連線
如果您重設 Git 連線並輸入新的 Git 存放區網址,LookML 就會移至該存放區。個人和共用分支中所有儲存的變更都會保留,並可在 Looker 中使用。一開始,Git 供應器的使用者介面只會顯示主分支和其記錄。下次有人對該分支版本進行提交時,其他分支版本及其歷史記錄就會顯示。如要使用這個方法遷移至新存放區,請按照下列步驟操作:
- 前往該專案的專案設定頁面。
- 在「專案設定」頁面的「設定」分頁標籤中,選取「重設 Git 連線」按鈕。
- 在「Configure Git」頁面中,輸入新的 Git 網址 (您要遷移的存放區 Git 網址),然後選取「Continue」。
- 如果您使用 SSH 連線,請務必選取「Reset Key」。否則,系統會使用相同的 SSH 金鑰,如果兩個存放區都由同一個服務 (在本例中為 GitHub) 代管,就可能發生衝突。
- 如要建立 SSH 連線,請將新的部署金鑰新增至 Git 存放區,並務必在 Git 存放區部署金鑰設定中授予寫入存取權。如果您使用 HTTPS,請輸入 Git 存放區的登入憑證。如需 Git 設定的完整操作說明,請參閱「設定及測試 Git 連線」說明文件。
完成這些步驟後,專案就會連結至新的存放區。
注意:您必須先將專案部署至實際環境,專案的 LookML 才會顯示在新存放區的主分支中。除非您將 LookML 程式碼部署至正式環境,否則在提交程式碼或將其推送至遠端 (Git 指令,可在 Git 操作面板中使用) 後,LookML 程式碼只會顯示在新存放區的開發分支中。
進階解決方案:複製存放區
先前所述的簡單解決方案會保留所有分支的記錄,但一開始只有主分支及其記錄會顯示在 GitHub UI 中。在 Looker 中對個人或共用分支進行提交後,該分支及其記錄會顯示在 GitHub 使用者介面中。您需要更進階的解決方案,才能立即透過 GitHub UI 查看所有分支及其記錄。
首先,您必須有權存取 GitHub (或其他 Git 供應商) 中的原始存放區。您可以在專案設定或專案設定頁面底部找到存放區網址。
在本例中,假設 git@github.com:looker/PROJECT_NAME.git
是原始存放區,git@github.com:your_organization/PROJECT_NAME.git
是新存放區:
-
將原始存放區複製到電腦上,然後下載要保留的分支。
git clone git@github.com:looker/PROJECT_NAME.git cd PROJECT_NAME git checkout master git pull
-
重設存放區的遠端網址。詳情請參閱 GitHub 說明文件。
git remote -v
這會顯示目前指向的遠端位置。結果如下所示:
origin git@github.com:looker/PROJECT_NAME.git (fetch) origin git@github.com:looker/PROJECT_NAME.git (push)
-
接下來,將原始來源設定為新存放區:
git remote set-url origin git@github.com:your_organization/PROJECT_NAME.git git push origin master
-
如要為開發分支導入記錄和檔案,您必須為每個開發分支執行
git checkout dev_branch_name
和git push origin
。您可以手動執行這項操作,也可以在指令碼的迴圈中執行,如以下範例所示:#!/bin/bash for branch in $(git branch --all | grep '^\s*remotes' | egrep --invert-match '(:?HEAD|master)$'); do git branch --track "${branch##*/}" "$branch" done
然後使用
git push --all
推送分支。 - 將 Looker 中的 Git 連線重設為這個新網址,並在這個新存放區中設定部署金鑰 (請參閱本頁先前的簡易解決方案部分中的步驟)。