Zu einem neuen Git-Repository migrieren

Wenn Sie ein LookML-Projekt haben, das mit einem Git-Repository verbunden ist, können Sie die LookML dieses Projekts in ein neues Repository verschieben.

Es gibt zwei mögliche Ansätze zur Lösung dieses Problems, die beide in den folgenden Abschnitten beschrieben werden:

  • Git-Verbindung zurücksetzen: Diese einfache Lösung behält alle persönlichen und gemeinsamen Zweige in Looker bei und eignet sich für die meisten Anwendungsfälle.
  • Git-Repository klonen: Diese erweiterte Lösung wird bevorzugt, wenn es wichtig ist, den vollständigen Verlauf aller Zweige, die jemals über die Benutzeroberfläche Ihres Git-Anbieters verwendet wurden, sofort sehen zu können.

Einfache Lösung: Git-Verbindung zurücksetzen

Wenn Sie die Git-Verbindung zurücksetzen und eine neue Git-Repository-URL eingeben, wird die LookML in dieses Repository verschoben. Alle gespeicherten Änderungen in persönlichen und gemeinsamen Zweigen werden beibehalten und in Looker verwendet. Zuerst werden in der Benutzeroberfläche Ihres Git-Anbieters nur der Master-Branch und sein Verlauf angezeigt. Andere Zweige und deren Verlauf werden angezeigt, wenn das nächste Mal ein Commit für diesen Zweig erfolgt. So migrieren Sie zu einem neuen Repository mit dieser Methode:

  1. Rufen Sie die Seite Projekteinstellungen für dieses Projekt auf.
  2. Klicken Sie auf der Seite Project Settings (Projekteinstellungen) auf dem Tab Configuration (Konfiguration) auf die Schaltfläche Reset Git Connection (Git-Verbindung zurücksetzen).
  3. Geben Sie auf der Seite Git konfigurieren die neue Git-URL ein (die Git-URL für das Repository, zu dem Sie migrieren möchten) und wählen Sie dann Weiter aus.
  4. Wenn Sie eine SSH-Verbindung verwenden, wählen Sie Schlüssel zurücksetzen aus. Andernfalls wird derselbe SSH-Schlüssel verwendet, was zu einem Konflikt führen kann, wenn beide Repositories vom selben Dienst gehostet werden (in diesem Fall GitHub).
  5. Fügen Sie für SSH-Verbindungen den neuen Bereitstellungsschlüssel zu Ihrem Git-Repository hinzu und gewähren Sie in den Einstellungen des Bereitstellungsschlüssels des Git-Repositorys Schreibzugriff. Wenn Sie HTTPS verwenden, geben Sie die Anmeldedaten für Ihr Git-Repository ein. Eine vollständige Anleitung zum Einrichten von Git finden Sie auf der Dokumentationsseite Git-Verbindung einrichten und testen.

Nachdem Sie diese Schritte ausgeführt haben, wird Ihr Projekt mit dem neuen Repository verbunden.

Hinweis: Die LookML Ihres Projekts wird erst dann im Master-Branch des neuen Repositories angezeigt, wenn Sie Ihr Projekt in die Produktion bereitgestellt haben. Sofern Sie Ihren LookML-Code nicht in der Produktion bereitstellen, wird er erst dann in Ihrem Entwicklungszweig im neuen Repository angezeigt, nachdem Sie einen Commit für den Code durchgeführt haben. Alternativ können Sie ihn per Push in die Remote-Version übertragen (ein Git-Befehl, der im Bereich „Git Actions verfügbar ist).

Erweiterte Lösung: Repository klonen

Bei der einfachen Lösung, die oben beschrieben wurde, wird der Verlauf aller Branches beibehalten. In der GitHub-Benutzeroberfläche sind jedoch zuerst nur der Master-Branch und sein Verlauf zu sehen. Nachdem ein Commit für einen persönlichen oder gemeinsamen Zweig in Looker durchgeführt wurde, werden dieser Zweig und sein Verlauf in der GitHub-Benutzeroberfläche angezeigt. Es ist eine fortgeschrittenere Lösung erforderlich, um alle Zweige und ihren Verlauf sofort über die GitHub-Benutzeroberfläche anzuzeigen.

Zuerst müssen Sie Zugriff auf das ursprüngliche Repository in GitHub (oder einem anderen Git-Anbieter) haben. Sie finden die Repository-URL unten auf der Seite mit den Projekteinstellungen oder der Projektkonfiguration.

Nehmen wir für dieses Beispiel an, dass git@github.com:looker/PROJECT_NAME.git das ursprüngliche Repository und git@github.com:your_organization/PROJECT_NAME.git das neue Repository ist:

  1. Klonen Sie das ursprüngliche Repository auf Ihrem Computer und rufen Sie die Zweige ab, die Sie beibehalten möchten.

    git clone git@github.com:looker/PROJECT_NAME.git
    cd PROJECT_NAME
    git checkout master
    git pull
    
  2. Setzen Sie die Remote-URL des Repos zurück. Weitere Informationen finden Sie in der GitHub-Dokumentation.

    git remote -v
    

    Hier sehen Sie die Fernbedienung(en), auf die Ihr Repository derzeit verweist. Die Ergebnisse sehen in etwa so aus:

    origin git@github.com:looker/PROJECT_NAME.git (fetch)
    origin git@github.com:looker/PROJECT_NAME.git (push)
    
  3. Legen Sie als Nächstes das neue Repository als Ursprungs-Remote-Repository fest:

    git remote set-url origin git@github.com:your_organization/PROJECT_NAME.git
    git push origin master
    
  4. Jetzt müssen Sie für jeden Entwicklungszweig git checkout dev_branch_name und git push origin ausführen, um den Verlauf und die Dateien für die Entwicklungszweige einzubinden. Dies kann manuell oder in einer Schleife in einem Skript erfolgen, wie im folgenden Beispiel gezeigt:

    #!/bin/bash
    for branch in $(git branch --all | grep '^\s*remotes' | egrep --invert-match '(:?HEAD|master)$'); do
    git branch --track "${branch##*/}" "$branch"
    done
    

    Übertragen Sie die Zweige dann mit git push --all.

  5. Setzen Sie die Git-Verbindung in Looker auf diese neue URL zurück und richten Sie einen Bereitstellungsschlüssel in diesem neuen Repository ein (siehe Schritte im Abschnitt zur einfachen Lösung oben auf dieser Seite).