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