如果您的 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 不会显示在新代码库的主分支中。除非您部署到生产环境,否则您的 LookML 代码在提交代码后将仅显示在新代码库中的开发分支上,或者将其推送到远程(Git 操作面板中提供了 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
-
现在,如需为开发分支导入历史记录和文件,您需要为每个开发分支执行
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 连接重置为此新网址,并在此新代码库上设置部署密钥(请参阅本页上文中的“简单解决方案”部分中的步骤)。