迁移到新的 Git 代码库

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

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

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

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

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

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

  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. 现在,如需为开发分支导入历史记录和文件,您需要为每个开发分支执行 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 连接重置为此新网址,并在此新代码库上设置部署密钥(请参阅本页上文中的“简单解决方案”部分中的步骤)。