新しい Git リポジトリへの移行

Git リポジトリに接続されている LookML プロジェクトがある場合、そのプロジェクトの LookML を新しいリポジトリに移動することをおすすめします。

この問題には 2 つの方法があります。両方の方法について、以降のセクションで説明します。

  • Git 接続をリセットする: このシンプルなソリューションは、Looker 内のすべての個人ブランチと共有ブランチを保持し、大半のユースケースに適しています。
  • Git リポジトリのクローンを作成する: この高度なソリューションは、Git プロバイダの UI で使用されたすべてのブランチの完全な履歴をすぐに確認できるため重要です。

簡単な解決策: Git 接続をリセットする

Git 接続をリセットして新しい Git リポジトリ URL を入力すると、LookML がそのリポジトリに移動されます。個人用ブランチや共有ブランチに保存された変更はすべて維持され、Looker で使用できるようになります。まず、Git プロバイダの UI にはマスター ブランチとその履歴のみが表示されます。他のブランチとその履歴は、そのブランチに対して次回 commit が行われると表示されます。この方法で新しいリポジトリに移行するには、次の操作を行います。

  1. そのプロジェクトの [プロジェクトの設定] ページに移動します。
  2. [プロジェクト設定] ページの [設定] タブで、[Git コネクションのリセット] ボタンを選択します。
  3. [Git を設定する] ページで、新しい Git URL(移行するリポジトリの Git URL)を入力し、[続行] を選択します。
  4. SSH を使用して接続する場合は、必ず [キーをリセット] を選択します。それ以外の場合は、同じ SSH 認証鍵が使用されます。これにより、両方のリポジトリが同じサービス(この場合は GitHub)でホストされている場合に競合が発生する可能性があります。
  5. SSH 接続の場合は、新しいデプロイキーを Git リポジトリに追加し、Git リポジトリのデプロイキー設定で書き込みアクセス権を付与してください。HTTPS を使用している場合は、Git リポジトリのログイン認証情報を入力します。Git の設定の完全な手順については、Git 接続の設定とテストのドキュメント ページをご覧ください。

この手順を行うと、プロジェクトが新しいリポジトリに接続されます。

注: プロジェクトの LookML は、プロジェクトを本番環境にデプロイするまで新しいリポジトリのマスター ブランチに表示されません。本番環境にデプロイする場合を除き、LookML コードは、コードを commit するか、リモートに push(Git アクションパネルで利用可能なGit コマンド)した後に、新しいリポジトリで開発ブランチにのみ表示されます。

高度なソリューション: リポジトリのクローン作成

前述のシンプルなソリューションではすべてのブランチの履歴が保持されますが、マスター ブランチとその履歴のみが最初に GitHub UI に表示されます。Looker で個人ブランチまたは共有ブランチに対して commit が行われると、そのブランチとその履歴が GitHub UI に表示されます。GitHub UI からすべてのブランチとその履歴をすぐに表示するには、高度なソリューションが必要です。

まず、GitHub(または他の Git プロバイダ)の元のリポジトリにアクセスする必要があります。リポジトリ URL は、プロジェクトの設定またはプロジェクトの構成ページの下部で確認できます。

この例では、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. リポジトリのリモート URL をリセットします。詳しくは、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 でブランチを push します。

  5. Looker で Git 接続をこの新しい URL にリセットし、この新しいリポジトリでデプロイキーを設定します(このページの前述のシンプルなソリューションのセクションの手順をご覧ください)。