Wenn Sie versehentlich ein Skript oder einen Ordner in einem Repository im Earth Engine Code Editor löschen oder ein Repository zu einem neuen Konto migrieren müssen, wird der vollständige Commit-Verlauf in den Git-Logs auf unseren Servern beibehalten. Während mit dem Symbol für das Repository im Code-Editor ein gesamtes Repository in einen vorherigen Zustand zurückgesetzt wird, können Sie durch lokales Klonen des Repositorys mit standardmäßigen Git-Befehlszeilentools einzelne Skripts oder Ordner selektiv wiederherstellen, ohne neuere Änderungen an anderen Skripts zu verlieren.
Was kann wiederhergestellt werden?
Im Code-Editor auf dem Tab Scripts ist Ihre Arbeit so organisiert:
users/username/repository:folder/script:
- Scripts und Ordner (wiederherstellbar): Wenn Sie ein Script oder einen Ordner in einem Repository löschen, wird es bzw. er nur aus dem letzten Commit entfernt. Da das Repository selbst weiterhin auf
earthengine.googlesource.comvorhanden ist, können Sie es klonen und die gelöschten Dateien aus dem Git-Commit-Verlauf mit Option A oder Option B wiederherstellen. - Gesamte Repositories (nicht wiederherstellbar): Wenn Sie ein Repository (
users/username/repository) löschen, werden das Git-Repository, die zugehörigen Skripts und der Commit-Verlauf dauerhaft ausearthengine.googlesource.comentfernt ("Repository is not found"wird zurückgegeben). Nach dem Löschen kann ein Repository nicht mehr geklont oder wiederhergestellt werden.
Erfüllen Sie zuerst die Voraussetzungen und wählen Sie dann je nach Aufgabe eine der folgenden Optionen aus:
- Option A: Gelöschtes Script wiederherstellen
- Option B: Gelöschten Ordner wiederherstellen
- Option C: Ein ganzes Repository migrieren
Vorbereitung
Schritt 1: Git-Anmeldedaten generieren
Da in von Google gehosteten Git-Repositories die sichere Token-Authentifizierung verwendet wird, müssen Sie zuerst Ihre lokalen Git-Anmeldedaten generieren:
- Öffnen Sie in Ihrem Webbrowser ein Inkognito- oder privates Browserfenster und rufen Sie den Git-Passwortgenerator auf: earthengine.googlesource.com/new-password Hinweis: Melden Sie sich ausschließlich mit Ihrem in Earth Engine registrierten Google-Konto an. Wenn Sie ein Repository gemäß Option C zu einem neuen Konto migrieren, geben Sie das alte Repository zuerst für Ihr neues Konto frei und melden Sie sich hier mit Ihrem neuen Google-Konto an.
- Kopieren Sie den gesamten Block der generierten Shell-Befehle, die auf dem Bildschirm angezeigt werden.
- Öffnen Sie auf Ihrem Computer ein Terminal (Befehlszeile), fügen Sie die kopierten Befehle ein und führen Sie sie aus. Dadurch werden die Git-Cookie-Anmeldedaten Ihres Computers automatisch konfiguriert.
Wenn Sie Git zum ersten Mal auf Ihrem Computer verwenden, konfigurieren Sie Ihren Autorennamen und Ihre E‑Mail-Adresse, damit Sie mit Git Commits erstellen können:
git config --global user.name "Your Name" git config --global user.email "you@example.com"
Schritt 2: Repository klonen (Optionen A und B)
Wenn Sie ein Repository zwischen Konten migrieren, fahren Sie mit Option C fort. Wenn Sie ein gelöschtes Skript oder einen gelöschten Ordner wiederherstellen möchten, klonen Sie Ihr Repository in Ihrem lokalen Terminal. Ersetzen Sie dazu username und repository durch Ihre Earth Engine-Details. Sie können den genauen Klonbefehl auch kopieren, indem Sie auf dem Tab Scripts neben dem Repository-Namen auf das Symbol klicken:
git clone https://earthengine.googlesource.com/users/username/repository
Wechseln Sie nach Abschluss des Vorgangs in den geklonten Ordner:
cd repository
Option A: Gelöschtes Script wiederherstellen
So stellen Sie eine gelöschte Scriptdatei wieder her (z. B. MyScript oder MyFolder/MyScript):
Sehen Sie sich den Verlauf der Datei an, um den Commit zum Löschen und den Commit unmittelbar davor zu finden (in der Log-Ausgabe direkt danach aufgeführt):
git log --oneline -- "MyScript"Stellen Sie die letzte Version wieder her, in der die Datei noch vorhanden war (ersetzen Sie
<commit_hash>durch den Hash des Commits vor dem Löschen oder verwenden Sie<deletion_commit_hash>~1):git checkout <commit_hash> -- "MyScript"Übernehmen Sie das wiederhergestellte Script und übertragen Sie es per Push zurück auf den Server:
git commit -m "Restore MyScript from history" git push origin
Laden Sie nach dem Pushen den Tab Scripts im Code-Editor in Ihrem Browser neu (oder klicken Sie oben auf dem Tab Scripts auf die Schaltfläche ), um das wiederhergestellte Skript zu sehen.
Option B: Gelöschten Ordner wiederherstellen
So stellen Sie einen gelöschten Ordner und alle darin enthaltenen Skripts wieder her (z. B. MyFolder/):
Sehen Sie in Ihren Git-Commit-Logs nach dem Lösch-Commit und dem Commit direkt davor (in der Logausgabe direkt danach aufgeführt):
git log --oneline -- "MyFolder/"Stellen Sie die letzte Version, in der der Ordner noch vorhanden war, in Ihrem Ordner wieder her. Ersetzen Sie
<commit_hash>durch den Hash des Commits vor dem Löschen oder verwenden Sie<deletion_commit_hash>~1:git checkout <commit_hash> -- "MyFolder/"Führen Sie für den wiederhergestellten Ordner ein Commit aus und übertragen Sie ihn per Push auf den Server:
git commit -m "Restore MyFolder and all its scripts" git push origin
Nachdem Sie die Änderungen übertragen haben, laden Sie den Tab Scripts im Code-Editor in Ihrem Browser neu (oder klicken Sie oben auf dem Tab Scripts auf die Schaltfläche ), um den wiederhergestellten Ordner zu sehen.
Option C: Ein ganzes Repository migrieren
Wenn Sie ein gesamtes Repository und den vollständigen Commit-Verlauf in ein neues Konto migrieren müssen (z. B. beim Wechsel zwischen institutionellen und privaten Konten):
Anmeldedaten und Berechtigungen: Wenn Sie ein Repository zwischen zwei verschiedenen Google-Konten migrieren (z. B. von einem Konto einer Universität oder eines Arbeitsplatzes zu einem privaten Konto), müssen Sie dafür sorgen, dass Ihr neues Konto die Berechtigung hat, das alte Repository zu lesen, bevor Sie beginnen:
- Voraussetzung für die Freigabe: Melden Sie sich in Ihrem alten Code Editor-Konto an, klicken Sie neben dem Namen Ihres alten Repositorys auf das Symbol und geben Sie es für die E‑Mail-Adresse Ihres neuen Google-Kontos frei. Gewähren Sie dabei Lesezugriff.
- Dadurch müssen Sie sich nur einmal auf Ihrem lokalen Computer authentifizieren (mit den Git-Anmeldedaten Ihres neuen Kontos, die in Schritt 1 generiert wurden). Ihr neues Konto hat die Berechtigung, sowohl Ihr altes Repository zu klonen als auch in Ihr neues Repository zu pushen. So werden Konflikte mit Anmeldedaten vermieden.
Klonen Sie Ihr altes Repository lokal mit dem Standard-Git:
git clone https://earthengine.googlesource.com/users/old_username/old_repositoryErstellen Sie in Ihrem neuen Code Editor-Konto über das Menü Neu > Repository ein neues, leeres Repository. Hinweis: Erstellen oder speichern Sie vor dem Push keine Skripts oder Ordner im neuen Repository, da der Push sonst fehlschlägt.
Wechseln Sie in Ihr lokal geklontes Verzeichnis:
cd old_repositoryÜbertragen Sie den gesamten lokalen Commit-Verlauf und die Skripts per Push direkt in Ihr neues, leeres Earth Engine-Repository:
git push https://earthengine.googlesource.com/users/new_username/new_repository --all
Laden Sie nach dem Push den Tab Scripts im Code-Editor Ihres neuen Kontos neu oder klicken Sie auf die Schaltfläche , um das migrierte Repository und den Verlauf zu sehen.