Recuperación de secuencias de comandos y migración de repositorios

Si borras por accidente una secuencia de comandos o una carpeta dentro de un repositorio en el Editor de código de Earth Engine, o bien necesitas migrar un repositorio a una cuenta nueva, el historial de confirmaciones completo se conserva en los registros de Git de nuestros servidores. Si bien el ícono de repositorio en el editor de código revierte un repositorio completo a un estado anterior, clonar el repositorio de forma local con las herramientas de línea de comandos estándar de Git te permite restablecer de forma selectiva carpetas o secuencias de comandos individuales sin perder los cambios más recientes en otras secuencias de comandos.

Qué se puede recuperar

En la pestaña Scripts del Editor de código, tu trabajo se organiza de la siguiente manera: users/username/repository:folder/script

  • Secuencias de comandos y carpetas (recuperables): Si borras una secuencia de comandos o una carpeta dentro de un repositorio, solo se quitará de la confirmación más reciente. Dado que el repositorio en sí aún existe en earthengine.googlesource.com, puedes clonarlo y restablecer los archivos borrados desde su historial de confirmaciones de Git con la opción A o la opción B.
  • Repositorios completos (no recuperables): Si borras un repositorio (users/username/repository), se quitarán de forma permanente el repositorio de Git, sus secuencias de comandos y su historial de confirmaciones de earthengine.googlesource.com (se devolverá "Repository is not found"). Una vez borrado, no se podrá clonar ni recuperar un repositorio.

Primero, completa los requisitos previos y, luego, elige una de las siguientes opciones según tu tarea:

Requisitos previos

Paso 1: Genera credenciales de Git

Dado que los repositorios de Git alojados en Google usan la autenticación segura con tokens, primero debes generar tus credenciales de Git locales:

  1. Abre una ventana de incógnito o de navegación privada en tu navegador web y visita el generador de contraseñas de Git: earthengine.googlesource.com/new-password (Nota: Accede exclusivamente con tu Cuenta de Google registrada en Earth Engine. Si migras un repositorio a una cuenta nueva según la opción C, primero comparte el repositorio anterior con tu cuenta nueva y accede aquí con tu nueva Cuenta de Google.
  2. Copia todo el bloque de comandos de shell generados que se muestran en la pantalla.
  3. Abre una terminal (línea de comandos) en tu computadora, pega los comandos copiados y ejecútalos. Esto configura automáticamente las credenciales de cookie de Git de tu máquina.
  4. Si es la primera vez que usas Git en tu computadora, configura tu nombre de autor y correo electrónico para que Git te permita crear confirmaciones:

    git config --global user.name "Your Name"
    git config --global user.email "you@example.com"
    

Paso 2: Clona tu repositorio (opciones A y B)

Si vas a migrar un repositorio entre cuentas, ve a la Opción C. Para restablecer una secuencia de comandos o una carpeta borrada, clona tu repositorio en la terminal local reemplazando username y repository por tus detalles de Earth Engine (también puedes copiar el comando de clonación exacto haciendo clic en el ícono de junto al nombre del repositorio en la pestaña Secuencias de comandos):

git clone https://earthengine.googlesource.com/users/username/repository

Una vez que se complete, navega a la carpeta clonada:

cd repository

Opción A: Restablece una secuencia de comandos borrada

Para recuperar un archivo de secuencia de comandos borrado (por ejemplo, MyScript o MyFolder/MyScript), haz lo siguiente:

  1. Consulta el historial del archivo para encontrar la confirmación de eliminación y la confirmación inmediatamente anterior a ella (que aparece justo después en el registro de salida):

    git log --oneline -- "MyScript"
    
  2. Restablece en tu carpeta la última versión en la que aún existía el archivo (reemplaza <commit_hash> por el hash de la confirmación anterior al borrado o usa <deletion_commit_hash>~1):

    git checkout <commit_hash> -- "MyScript"
    
  3. Confirma y vuelve a enviar la secuencia de comandos restaurada al servidor:

    git commit -m "Restore MyScript from history"
    git push origin
    

Una vez que se envíe, vuelve a cargar la pestaña Scripts del editor de código en tu navegador (o haz clic en el botón en la parte superior de la pestaña Scripts) para ver el script restaurado.

Opción B: Restablece una carpeta borrada

Para recuperar una carpeta borrada y todas las secuencias de comandos que contiene (por ejemplo, MyFolder/), haz lo siguiente:

  1. Revisa los registros de confirmación de Git para encontrar la confirmación de eliminación y la confirmación inmediatamente anterior (que aparece justo después en el resultado del registro):

    git log --oneline -- "MyFolder/"
    
  2. Restablece la última versión en la que aún existía la carpeta (reemplaza <commit_hash> por el hash de la confirmación anterior al borrado o usa <deletion_commit_hash>~1):

    git checkout <commit_hash> -- "MyFolder/"
    
  3. Confirma y vuelve a enviar la carpeta recuperada al servidor:

    git commit -m "Restore MyFolder and all its scripts"
    git push origin
    

Una vez que se envíe, vuelve a cargar la pestaña Scripts del Editor de código en tu navegador (o haz clic en el botón en la parte superior de la pestaña Scripts) para ver la carpeta restaurada.

Opción C: Migra un repositorio completo

Si necesitas migrar un repositorio completo y su historial de confirmaciones a una cuenta nueva (por ejemplo, cuando cambias de una cuenta institucional a una personal), sigue estos pasos:

Credenciales y permisos: Si migras un repositorio entre dos Cuentas de Google diferentes (por ejemplo, de una cuenta de la universidad o del trabajo a una cuenta personal), debes asegurarte de que tu cuenta nueva tenga permiso para leer el repositorio anterior antes de comenzar:

  • El requisito previo para compartir: Accede a tu antigua cuenta del editor de código, haz clic en el ícono de junto al nombre de tu antiguo repositorio y compártelo con tu nueva dirección de correo electrónico de la Cuenta de Google, otorgándole acceso de lector.
  • De esta manera, solo necesitas autenticarte en tu computadora local una vez (con las credenciales de Git de tu cuenta nueva generadas en el paso 1). Tu cuenta nueva tendrá permiso para clonar desde tu repositorio anterior y enviar a tu repositorio nuevo, lo que evitará conflictos de credenciales.
  1. Clona tu repositorio anterior de forma local con Git estándar:

    git clone https://earthengine.googlesource.com/users/old_username/old_repository
    
  2. Crea un repositorio nuevo y vacío desde el menú Nuevo > Repositorio en tu nueva cuenta del editor de código. (Nota: No crees ni guardes secuencias de comandos ni carpetas en el nuevo repositorio antes de enviar los cambios, ya que, de lo contrario, se producirá un error).

  3. Navega a tu directorio clonado local:

    cd old_repository
    
  4. Envía todo tu historial de confirmaciones y secuencias de comandos locales directamente a tu nuevo repositorio vacío de Earth Engine:

    git push https://earthengine.googlesource.com/users/new_username/new_repository --all
    

Una vez que se envíe, vuelve a cargar la pestaña Scripts en el Editor de código de tu nueva cuenta (o haz clic en el botón ) para ver el repositorio y el historial migrados.