迁移到新的 Git 代码库

如果您有一个已连接到 Git 代码库的 LookML 项目,则可能需要将该项目的 LookML 移至新的代码库。

解决此问题的方法有两种,详见以下各部分:

  • 重置 Git 连接:这一简单的解决方案可保留 Looker 中的所有个人分支和共享分支,适用于大多数使用场景。
  • 克隆 Git 代码库:如果您必须立即通过 Git 提供商的界面查看曾使用过的所有分支的完整历史记录,则首选此高级解决方案。

简单的解决方案:重置 Git 连接

如果您重置 Git 连接并输入新的 Git 代码库网址,则 LookML 将移至该代码库。在个人分支和共享分支中保存的所有更改都将在 Looker 中得到维护,并且仍可使用。最初,您的 Git 提供商的界面将仅显示主分支及其历史记录。其他分支及其历史记录会在下次提交到该分支时显示。如需使用此方法迁移到新的代码库,请按以下步骤操作:

  1. 前往该项目的“项目设置”页面
  2. 在“项目设置”页面的配置标签页上,选择重置 Git 连接按钮。
  3. 配置 Git 页面上,输入新的 Git 网址(要迁移到的代码库的 Git 网址),然后选择 Continue
  4. 如果您使用 SSH 进行连接,请务必选择重置密钥。否则,系统将使用相同的 SSH 密钥,如果两个代码库由同一服务(在本例中为 GitHub)托管,这可能会导致冲突。
  5. 对于 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 是新代码库:

  1. 将原始代码库克隆到计算机上,并拉取要保留的分支。

    git clone git@github.com:looker/PROJECT_NAME.git
    cd PROJECT_NAME
    git checkout master
    git pull
    
  2. 重置代码库的远程网址。如需了解详情,请参阅 GitHub 文档

    git remote -v
    

    这会显示您的代码库当前指向的遥控器。结果将如下所示:

    origin git@github.com:looker/PROJECT_NAME.git (fetch)
    origin git@github.com:looker/PROJECT_NAME.git (push)
    
  3. 接下来,将源远程代码库设置为新代码库:

    git remote set-url origin git@github.com:your_organization/PROJECT_NAME.git
    git push origin master
    
  4. 现在,如需为 dev 分支引入历史记录和文件,您需要为每个 dev 分支执行 git checkout dev_branch_namegit 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 推送分支。

  5. 将 Looker 中的 Git 连接重置为这个新网址,并在这个新代码库中设置部署密钥(请参阅本页面前面的简单解决方案部分中的步骤)。