Komut dosyası kurtarma ve depo taşıma

Earth Engine Kod Düzenleyici'daki bir depoda yanlışlıkla bir komut dosyası veya klasör silerseniz ya da bir depoyu yeni bir hesaba taşımanız gerekirse tam commit geçmişi, sunucularımızdaki Git günlüklerinde korunur. Kod Düzenleyici'deki depo simgesi, bir deponun tamamını önceki durumuna geri döndürürken depoyu standart Git komut satırı araçlarıyla yerel olarak klonlamak, diğer komut dosyalarındaki daha yeni değişiklikleri kaybetmeden tek tek komut dosyalarını veya klasörleri seçerek geri yüklemenize olanak tanır.

Neler kurtarılabilir?

Kod düzenleyicinin Komut Dosyaları sekmesinde çalışmanız şu şekilde düzenlenir: users/username/repository:folder/script:

  • Komut dosyaları ve klasörler (kurtarılabilir): Bir depodaki komut dosyasını veya klasörü sildiğinizde yalnızca en son commit'ten kaldırılır. Deponun kendisi earthengine.googlesource.com üzerinde hâlâ mevcut olduğundan, depoyu klonlayabilir ve silinen dosyaları A seçeneği veya B seçeneği'ni kullanarak Git commit geçmişinden geri yükleyebilirsiniz.
  • Depoların tamamı (kurtarılamaz): Bir deponun silinmesi (users/username/repository) Git deposunu, komut dosyalarını ve commit geçmişini earthengine.googlesource.com'den kalıcı olarak kaldırır ("Repository is not found" döndürülür). Silinen depolar klonlanamaz veya kurtarılamaz.

Öncelikle Ön koşullar'ı tamamlayın, ardından görevinize bağlı olarak aşağıdaki seçeneklerden birini belirleyin:

Ön koşullar

1. adım: Git kimlik bilgileri oluşturun

Google tarafından barındırılan Git veri havuzları güvenli jeton kimlik doğrulaması kullandığından önce yerel Git kimlik bilgilerinizi oluşturmanız gerekir:

  1. Web tarayıcınızda gizli veya özel tarama penceresi açın ve Git şifre oluşturucuyu ziyaret edin: earthengine.googlesource.com/new-password (Not: Yalnızca Earth Engine'e kayıtlı Google Hesabınızla oturum açın. Bir depoyu C seçeneği kapsamındaki yeni bir hesaba taşıyorsanız önce eski depoyu yeni hesabınızla paylaşın ve yeni Google Hesabınızla buradan giriş yapın.)
  2. Ekranda gösterilen oluşturulmuş kabuk komutlarının tamamını kopyalayın.
  3. Bilgisayarınızda bir terminal (komut satırı) açın, kopyalanan komutları yapıştırın ve çalıştırın. Bu işlem, makinenizin Git çerez kimlik bilgilerini otomatik olarak yapılandırır.
  4. Bilgisayarınızda Git'i ilk kez kullanıyorsanız Git'in kayıt oluşturmanıza izin vermesi için yazar adınızı ve e-posta adresinizi yapılandırın:

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

2. adım: Deponuzu klonlayın (A ve B seçenekleri)

Hesaplar arasında bir depo taşıyorsanız C seçeneği'ne geçin. Silinen bir komut dosyasını veya klasörü geri yüklemek için username ve repository yerine Earth Engine ayrıntılarınızı girerek yerel terminalinizde deponuzu klonlayın (Komut Dosyaları sekmesinde depo adının yanındaki simgesini tıklayarak da tam klonlama komutunu kopyalayabilirsiniz):

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

İşlem tamamlandığında klonlanan klasöre gidin:

cd repository

1. seçenek: Silinen bir komut dosyasını geri yükleme

Silinen bir komut dosyası dosyasını (ör. MyScript veya MyFolder/MyScript) kurtarmak için:

  1. Silme işlemeyi ve hemen öncesindeki işlemeyi (günlük çıktısında hemen sonrasında listelenir) bulmak için dosyanın geçmişini görüntüleyin:

    git log --oneline -- "MyScript"
    
  2. Dosyanın hâlâ bulunduğu son sürümü klasörünüze geri yükleyin (<commit_hash> yerine silme işleminden önceki commit'in karma değerini girin veya <deletion_commit_hash>~1 komutunu kullanın):

    git checkout <commit_hash> -- "MyScript"
    
  3. Geri yüklenen komut dosyasını sunucuya kaydedip gönderin:

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

Kod gönderildikten sonra, geri yüklenen senaryoyu görmek için tarayıcınızda Kod Düzenleyici Senaryolar sekmesini yeniden yükleyin (veya Senaryolar sekmesinin üst kısmındaki düğmesini tıklayın).

B seçeneği: Silinen bir klasörü geri yükleme

Silinen bir klasörü ve içindeki tüm komut dosyalarını (örneğin, MyFolder/) kurtarmak için:

  1. Silme işlemine ait commit'i ve ondan hemen önce gelen commit'i (günlük çıktısında hemen sonra listelenir) bulmak için Git commit günlüklerinizi kontrol edin:

    git log --oneline -- "MyFolder/"
    
  2. Klasörün mevcut olduğu son sürümü klasörünüze geri yükleyin (<commit_hash> yerine silme işleminden önceki commit'in karma değerini girin veya <deletion_commit_hash>~1 komutunu kullanın):

    git checkout <commit_hash> -- "MyFolder/"
    
  3. Kurtarılan klasörünüzü sunucuya geri gönderin:

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

Yeniden yükleme yapıldıktan sonra, geri yüklenen klasörü görmek için tarayıcınızda Kod Düzenleyici Scripts (Komut Dosyaları) sekmesini yeniden yükleyin (veya Scripts sekmesinin üst kısmındaki düğmesini tıklayın).

C seçeneği: Bir deponun tamamını taşıma

Bir depoyu ve tüm commit geçmişini yeni bir hesaba taşımanız gerekiyorsa (ör. kurumsal ve kişisel hesaplar arasında geçiş yaparken):

Kimlik bilgileri ve izinler: Bir depoyu iki farklı Google Hesabı arasında taşıyorsanız (örneğin, üniversite veya iş hesabından kişisel hesaba) başlamadan önce yeni hesabınızın eski depoyu okuma iznine sahip olduğundan emin olmanız gerekir:

  • Paylaşım Ön Koşulu: Eski Kod Düzenleyici hesabınızda oturum açın, eski depo adınızın yanındaki simgesini tıklayın ve yeni Google Hesabı e-posta adresinizle paylaşarak Okuyucu erişimi verin.
  • Bu işlemi yaptığınızda, yalnızca yerel bilgisayarınızda bir kez kimlik doğrulamanız yeterlidir (1. adımda oluşturulan yeni hesabınızın Git kimlik bilgilerini kullanarak). Yeni hesabınız, kimlik bilgilerinde çakışma olmaması için hem eski deponuzu klonlama hem de yeni deponuza gönderme iznine sahip olur.
  1. Standart Git'i kullanarak eski deponuzu yerel olarak klonlayın:

    git clone https://earthengine.googlesource.com/users/old_username/old_repository
    
  2. Yeni Kod Düzenleyici hesabınızdaki Yeni > Depo menüsünden yeni ve boş bir depo oluşturun. (Not: Gönderme işleminden önce yeni depoda herhangi bir komut dosyası veya klasör oluşturmayın ya da kaydetmeyin. Aksi takdirde gönderme işlemi başarısız olur.)

  3. Yerel olarak klonlanan dizininize gidin:

    cd old_repository
    
  4. Tüm yerel taahhüt geçmişinizi ve komut dosyalarınızı doğrudan yeni ve boş Earth Engine deponuza aktarın:

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

Aktarıldıktan sonra, yeni hesabınızın kod düzenleyicisindeki Komut Dosyaları sekmesini yeniden yükleyin (veya düğmesini tıklayın) ve taşınan depoyu ve geçmişi görün.