新しい 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 を使用してブランチをプッシュします。

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