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