Si vous supprimez accidentellement un script ou un dossier dans un dépôt de l'éditeur de code Earth Engine, ou si vous devez migrer un dépôt vers un nouveau compte, l'historique complet des commits est conservé dans les journaux Git sur nos serveurs. Alors que l'icône du dépôt dans l'éditeur de code rétablit l'état précédent d'un dépôt entier, le clonage du dépôt en local avec les outils de ligne de commande Git standards vous permet de restaurer de manière sélective des scripts ou des dossiers individuels sans perdre les modifications plus récentes apportées à d'autres scripts.
Ce qui peut être récupéré
Dans l'onglet Scripts de l'éditeur de code, votre travail est organisé comme suit : users/username/repository:folder/script.
- Scripts et dossiers (récupérables) : la suppression d'un script ou d'un dossier dans un dépôt ne le supprime que du dernier commit. Étant donné que le dépôt lui-même existe toujours sur
earthengine.googlesource.com, vous pouvez le cloner et restaurer les fichiers supprimés à partir de son historique des commits Git à l'aide de l'option A ou de l'option B. - Dépôts entiers (non récupérables) : la suppression d'un dépôt (
users/username/repository) supprime définitivement le dépôt Git, ses scripts et son historique des commits deearthengine.googlesource.com(renvoie"Repository is not found"). Une fois supprimé, un dépôt ne peut pas être cloné ni récupéré.
Commencez par remplir les conditions préalables, puis choisissez l'une des options suivantes en fonction de votre tâche :
- Option A : Restaurer un script supprimé
- Option B : Restaurer un dossier supprimé
- Option C : Migrer un dépôt entier
Prérequis
Étape 1 : Générez des identifiants Git
Étant donné que les dépôts Git hébergés par Google utilisent l'authentification par jeton sécurisé, vous devez d'abord générer vos identifiants Git locaux :
- Ouvrez une fenêtre de navigation privée dans votre navigateur Web et accédez au générateur de mot de passe Git : earthengine.googlesource.com/new-password (Remarque : Connectez-vous exclusivement avec votre compte Google enregistré dans Earth Engine. Si vous migrez un dépôt vers un nouveau compte sous l'option C, commencez par partager l'ancien dépôt avec votre nouveau compte et connectez-vous ici avec votre nouveau compte Google.
- Copiez l'intégralité du bloc de commandes shell généré affiché à l'écran.
- Ouvrez un terminal (ligne de commande) sur votre ordinateur, collez les commandes copiées et exécutez-les. Cela configure automatiquement les identifiants de cookie Git de votre machine.
Si c'est la première fois que vous utilisez Git sur votre ordinateur, configurez le nom et l'adresse e-mail de l'auteur pour que Git vous permette de créer des commits :
git config --global user.name "Your Name" git config --global user.email "you@example.com"
Étape 2 : Clonez votre dépôt (options A et B)
Si vous migrez un dépôt entre des comptes, passez à l'option C. Pour restaurer un script ou un dossier supprimé, clonez votre dépôt dans votre terminal local en remplaçant username et repository par vos informations Earth Engine (vous pouvez également copier la commande de clonage exacte en cliquant sur l'icône à côté du nom du dépôt dans l'onglet Scripts) :
git clone https://earthengine.googlesource.com/users/username/repository
Une fois l'opération terminée, accédez au dossier cloné :
cd repository
Option A : Restaurer un script supprimé
Pour récupérer un fichier de script supprimé (par exemple, MyScript ou MyFolder/MyScript) :
Affichez l'historique du fichier pour trouver le commit de suppression et celui qui le précède immédiatement (listé juste après dans la sortie du journal) :
git log --oneline -- "MyScript"Restaurez la dernière version dans laquelle le fichier existait encore dans votre dossier (remplacez
<commit_hash>par le hachage du commit avant la suppression ou utilisez<deletion_commit_hash>~1) :git checkout <commit_hash> -- "MyScript"Validez et transférez le script restauré vers le serveur :
git commit -m "Restore MyScript from history" git push origin
Une fois le script restauré, rechargez l'onglet Scripts de l'éditeur de code dans votre navigateur (ou cliquez sur le bouton en haut de l'onglet Scripts) pour afficher le script restauré.
Option B : Restaurer un dossier supprimé
Pour récupérer un dossier supprimé et tous les scripts qu'il contient (par exemple, MyFolder/) :
Consultez vos journaux de commit Git pour trouver le commit de suppression et le commit immédiatement antérieur (listé juste après dans la sortie du journal) :
git log --oneline -- "MyFolder/"Restaurez la dernière version dans laquelle le dossier existait encore (remplacez
<commit_hash>par le hachage du commit avant la suppression ou utilisez<deletion_commit_hash>~1) :git checkout <commit_hash> -- "MyFolder/"Validez et transférez votre dossier récupéré vers le serveur :
git commit -m "Restore MyFolder and all its scripts" git push origin
Une fois le dossier restauré, rechargez l'onglet Scripts de l'éditeur de code dans votre navigateur (ou cliquez sur le bouton en haut de l'onglet Scripts) pour afficher le dossier restauré.
Option C : Migrer un dépôt entier
Si vous devez migrer un dépôt entier et son historique complet des commits vers un nouveau compte (par exemple, lorsque vous passez d'un compte institutionnel à un compte personnel) :
Identifiants et autorisations : si vous migrez un dépôt entre deux comptes Google différents (par exemple, d'un compte universitaire ou professionnel vers un compte personnel), vous devez vous assurer que votre nouveau compte est autorisé à lire l'ancien dépôt avant de commencer :
- Prérequis de partage : connectez-vous à votre ancien compte Code Editor, cliquez sur l'icône à côté de l'ancien nom de votre dépôt, puis partagez-le avec l'adresse e-mail de votre nouveau compte Google en lui accordant l'accès Lecteur.
- Vous n'aurez ainsi besoin de vous authentifier sur votre ordinateur local qu'une seule fois (à l'aide des identifiants Git de votre nouveau compte générés à l'étape 1). Votre nouveau compte sera autorisé à cloner votre ancien dépôt et à transférer des données vers le nouveau, ce qui évitera les conflits d'identifiants.
Clonez votre ancien dépôt en local à l'aide de Git standard :
git clone https://earthengine.googlesource.com/users/old_username/old_repositoryCréez un dépôt vide à partir du menu Nouveau > Dépôt dans votre nouveau compte Code Editor. (Remarque : Ne créez ni n'enregistrez de scripts ni de dossiers dans le nouveau dépôt avant d'effectuer le push, sinon le push échouera.)
Accédez à votre répertoire cloné local :
cd old_repositoryTransférez l'intégralité de votre historique de commits et de vos scripts locaux directement vers votre nouveau dépôt Earth Engine vide :
git push https://earthengine.googlesource.com/users/new_username/new_repository --all
Une fois le dépôt transféré, rechargez l'onglet Scripts dans l'éditeur de code de votre nouveau compte (ou cliquez sur le bouton ) pour afficher le dépôt et l'historique migrés.