Pemulihan skrip dan migrasi repositori

Jika Anda tidak sengaja menghapus skrip atau folder di dalam repositori di Earth Engine Code Editor, atau perlu memigrasikan repositori ke akun baru, histori commit lengkap akan dipertahankan di log Git di server kami. Meskipun ikon repositori di Editor Kode mengembalikan seluruh repositori ke status sebelumnya, meng-clone repositori secara lokal dengan alat command line Git standar memungkinkan Anda memulihkan skrip atau folder tertentu tanpa kehilangan perubahan yang lebih baru pada skrip lain.

Yang dapat dipulihkan

Di tab Skrip Editor Kode, pekerjaan Anda disusun sebagai users/username/repository:folder/script:

  • Skrip dan folder (dapat dipulihkan): Menghapus skrip atau folder di dalam repositori hanya akan menghapusnya dari commit terbaru. Karena repositori itu sendiri masih ada di earthengine.googlesource.com, Anda dapat meng-clone repositori dan memulihkan file yang dihapus dari histori commit Git-nya menggunakan Opsi A atau Opsi B.
  • Seluruh repositori (tidak dapat dipulihkan): Menghapus repositori (users/username/repository) akan menghapus repositori Git, skrip, dan histori commit-nya secara permanen dari earthengine.googlesource.com (menampilkan "Repository is not found"). Setelah dihapus, repositori tidak dapat di-clone atau dipulihkan.

Selesaikan Prasyarat terlebih dahulu, lalu pilih salah satu opsi berikut bergantung pada tugas Anda:

Prasyarat

Langkah 1: Buat kredensial Git

Karena repositori Git yang dihosting oleh Google menggunakan autentikasi token yang aman, Anda harus membuat kredensial Git lokal terlebih dahulu:

  1. Buka jendela penjelajahan samaran atau pribadi di browser web Anda dan buka generator sandi Git: earthengine.googlesource.com/new-password (Catatan: Login secara eksklusif dengan Akun Google yang terdaftar di Earth Engine. Jika Anda memigrasikan repositori ke akun baru di bagian Opsi C, bagikan terlebih dahulu repositori lama ke akun baru Anda dan login di sini dengan Akun Google baru Anda.)
  2. Salin seluruh blok perintah shell yang dihasilkan dan ditampilkan di layar.
  3. Buka terminal (command line) di komputer Anda, tempel perintah yang disalin, lalu jalankan. Tindakan ini akan mengonfigurasi kredensial cookie Git mesin Anda secara otomatis.
  4. Jika ini pertama kalinya Anda menggunakan Git di komputer, konfigurasikan nama dan email penulis agar Git memungkinkan Anda membuat commit:

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

Langkah 2: Buat clone repositori Anda (Opsi A dan B)

Jika Anda memigrasikan repositori antar-akun, lanjutkan ke Opsi C. Untuk memulihkan skrip atau folder yang dihapus, clone repositori Anda di terminal lokal dengan mengganti username dan repository dengan detail Earth Engine Anda (Anda juga dapat menyalin perintah clone yang tepat dengan mengklik ikon di samping nama repositori di tab Scripts):

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

Setelah selesai, buka folder yang di-clone:

cd repository

Opsi A: Memulihkan skrip yang dihapus

Untuk memulihkan file skrip yang dihapus (misalnya, MyScript atau MyFolder/MyScript):

  1. Lihat histori file untuk menemukan commit penghapusan dan commit tepat sebelum commit tersebut (tercantum tepat setelahnya dalam output log):

    git log --oneline -- "MyScript"
    
  2. Pulihkan versi terakhir saat file masih ada ke folder Anda (ganti <commit_hash> dengan hash commit sebelum penghapusan, atau gunakan <deletion_commit_hash>~1):

    git checkout <commit_hash> -- "MyScript"
    
  3. Lakukan commit dan kirim skrip yang dipulihkan kembali ke server:

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

Setelah didorong, muat ulang tab Scripts di Editor Kode di browser Anda (atau klik tombol di bagian atas tab Scripts) untuk melihat skrip yang dipulihkan.

Opsi B: Memulihkan folder yang dihapus

Untuk memulihkan folder yang dihapus dan semua skrip di dalamnya (misalnya, MyFolder/):

  1. Periksa log commit Git Anda untuk menemukan commit penghapusan dan commit segera sebelum commit tersebut (tercantum tepat setelahnya di output log):

    git log --oneline -- "MyFolder/"
    
  2. Pulihkan versi terakhir saat folder masih ada ke folder Anda (ganti <commit_hash> dengan hash commit sebelum penghapusan, atau gunakan <deletion_commit_hash>~1):

    git checkout <commit_hash> -- "MyFolder/"
    
  3. Lakukan commit dan kirim folder yang dipulihkan kembali ke server:

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

Setelah didorong, muat ulang tab Scripts Code Editor di browser Anda (atau klik tombol di bagian atas tab Scripts) untuk melihat folder yang dipulihkan.

Opsi C: Memigrasikan seluruh repositori

Jika Anda perlu memigrasikan seluruh repositori dan histori commit lengkapnya ke akun baru (misalnya, saat beralih antara akun institusional dan pribadi):

Kredensial dan izin: Jika Anda memigrasikan repositori antara dua Akun Google yang berbeda (misalnya, dari akun universitas atau kantor ke akun pribadi), Anda harus memastikan akun baru Anda memiliki izin untuk membaca repositori lama sebelum Anda memulai:

  • Prasyarat Berbagi: Login ke akun Editor Kode lama Anda, klik ikon di samping nama repositori lama Anda, dan bagikan ke alamat email Akun Google baru Anda, dengan memberikan akses Pembaca.
  • Dengan melakukannya, Anda hanya perlu melakukan autentikasi di komputer lokal sekali (menggunakan kredensial Git akun baru yang dibuat di Langkah 1). Akun baru Anda akan memiliki izin untuk meng-clone dari repositori lama dan melakukan push ke repositori baru, sehingga menghindari konflik kredensial.
  1. Clone repositori lama Anda secara lokal menggunakan Git standar:

    git clone https://earthengine.googlesource.com/users/old_username/old_repository
    
  2. Buat repositori baru yang kosong dari menu New > Repository di akun Editor Kode baru Anda. (Catatan: Jangan membuat atau menyimpan skrip atau folder apa pun di repositori baru sebelum melakukan push, atau push akan gagal.)

  3. Buka direktori yang di-clone secara lokal:

    cd old_repository
    
  4. Kirim seluruh histori commit dan skrip lokal Anda langsung ke repositori Earth Engine baru yang kosong:

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

Setelah didorong, muat ulang tab Scripts di Editor Kode akun baru Anda (atau klik tombol ) untuk melihat repositori dan histori yang dimigrasikan.