如果您有一个已连接到 Git 代码库的 LookML 项目,则可能需要将该项目的 LookML 移至新的代码库。
解决此问题的方法有两种,详见以下各部分:
- 重置 Git 连接:这一简单的解决方案可保留 Looker 中的所有个人分支和共享分支,适用于大多数使用场景。
- 克隆 Git 代码库:如果您必须立即通过 Git 提供商的界面查看曾使用过的所有分支的完整历史记录,则首选此高级解决方案。
简单的解决方案:重置 Git 连接
如果您重置 Git 连接并输入新的 Git 代码库网址,则 LookML 将移至该代码库。在个人分支和共享分支中保存的所有更改都将在 Looker 中得到维护,并且仍可使用。最初,您的 Git 提供商的界面将仅显示主分支及其历史记录。其他分支及其历史记录会在下次提交到该分支时显示。如需使用此方法迁移到新的代码库,请按以下步骤操作:
- 前往该项目的“项目设置”页面。
- 在“项目设置”页面的配置标签页上,选择重置 Git 连接按钮。
- 在配置 Git 页面上,输入新的 Git 网址(要迁移到的代码库的 Git 网址),然后选择 Continue。
- 如果您使用 SSH 进行连接,请务必选择重置密钥。否则,系统将使用相同的 SSH 密钥,如果两个代码库由同一服务(在本例中为 GitHub)托管,这可能会导致冲突。
- 对于 SSH 连接,请将新的部署密钥添加到 Git 代码库,并确保在 Git 代码库部署密钥设置中授予写入权限。如果您使用的是 HTTPS,请输入 Git 代码库的登录凭据。有关设置 Git 的完整说明,请参阅设置和测试 Git 连接文档页面。
完成上述步骤后,您的项目将连接到新的代码库。
注意:在您将项目部署到生产环境之前,您的项目 LookML 不会显示在新代码库的主分支中。除非您部署到生产环境,否则 LookML 代码将仅在您提交代码或将其推送到远程代码库(Git Actions 面板中提供了 Git 命令)后出现在新代码库中的开发分支上。
高级解决方案:克隆代码库
之前介绍的简单解决方案将保留所有分支的历史记录,但最初在 GitHub 界面中只会显示主分支及其历史记录。对 Looker 中的个人分支或共享分支进行提交后,该分支及其历史记录将显示在 GitHub 界面中。如需立即通过 GitHub 界面查看所有分支及其历史记录,需要使用更高级的解决方案。
首先,您需要有权访问 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
-
现在,如需为 dev 分支引入历史记录和文件,您需要为每个 dev 分支执行
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 连接重置为这个新网址,并在这个新代码库中设置部署密钥(请参阅本页面前面的简单解决方案部分中的步骤)。