بازیابی متن و انتقال مخزن

اگر به‌طور تصادفی یک دستورگان یا پوشه را در مخزنی در ویرایشگر کد Earth Engine حذف کنید، یا نیاز به انتقال مخزنی به حساب جدید داشته باشید، سابقه کامل تعهد در گزارش‌های Git در سرورهای ما حفظ می‌شود. درحالی‌که نماد مخزن در «ویرایشگر کد» کل مخزن را به وضعیت قبلی برمی‌گرداند، شبیه‌سازی مخزن به‌صورت محلی با ابزارهای خط فرمان استاندارد Git به شما امکان می‌دهد بدون ازدست دادن تغییرات جدیدتر در دیگر دستورگان، دستورگان یا پوشه‌های مجزا را به‌صورت انتخابی بازیابی کنید.

چه چیزی را می‌توان بازیابی کرد

در زبانه «ویرایشگر کد» دستورگان، کارتان به‌صورت زیر سازمان‌دهی می‌شود: users/username/repository:folder/script:

  • دستورگان و پوشه‌ها (قابل‌بازیابی): حذف کردن دستورگان یا پوشه در داخل مخزن فقط آن را از آخرین تعهد برمی‌دارد. چون مخزن هنوز در earthengine.googlesource.com وجود دارد، می‌توانید مخزن را شبیه‌سازی کنید و فایل‌های حذف‌شده را بااستفاده از سابقه تعهد Git آن گزینه A یا گزینه B بازیابی کنید.
  • کل مخزن‌ها (غیرقابل بازیابی): حذف مخزن (users/username/repository) مخزن Git، نوشته‌های آن، و سابقه تعهد آن را برای همیشه از earthengine.googlesource.com برمی‌دارد ("Repository is not found" برمی‌گرداند). پس‌از حذف، مخزن قابل شبیه‌سازی یا بازیابی نیست.

ابتدا پیش‌نیازها را تکمیل کنید، و سپس یکی از گزینه‌های زیر را بسته به تکلیف خود انتخاب کنید:

پیش‌نیازها

مرحله ۱: تولید اطلاعات اعتباری Git

ازآنجایی‌که مخزن‌های Git میزبانی‌شده توسط Google از اصالت‌سنجی با کد امن استفاده می‌کنند، باید ابتدا اطلاعات اعتباری Git محلی خود را تولید کنید:

  1. در مرورگر وب، پنجره مرور خصوصی یا ناشناس باز کنید و به مولد گذرواژه Git بروید: earthengine.googlesource.com/new-password (توجه: فقط با «حساب Google» ثبت‌شده در Earth Engine به سیستم وارد شوید. اگر مخزنی را به حساب جدیدی تحت گزینه C انتقال می‌دهید، ابتدا مخزن قدیمی را با حساب جدیدتان هم‌رسانی کنید و با جدید Google Account خود به سیستم وارد شوید.)
  2. کل بلوک فرمان‌های پوسته تولیدشده نشان‌داده‌شده در صفحه را کپی کنید.
  3. پایانه‌ای (خط فرمان) را در رایانه باز کنید، فرمان‌های کپی‌شده را جای‌گذاری کنید، و آن‌ها را اجرا کنید. این کار اطلاعات اعتباری کوکی Git دستگاهتان را به‌طور خودکار پیکربندی می‌کند.
  4. اگر اولین‌بار است که از Git در رایانه‌تان استفاده می‌کنید، نام و ایمیل نویسنده را پیکربندی کنید تا Git به شما اجازه دهد تعهد ایجاد کنید:

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

مرحله ۲: شبیه‌سازی مخزن (گزینه‌های A و B)

اگر درحال انتقال مخزن بین حساب‌ها هستید، به گزینه C بروید. برای بازیابی کردن پوشه یا نوشتار حذف‌شده، مخزن خود را در پایانه محلی‌تان با جایگزین کردن username و repository با جزئیات Earth Engine شبیه‌سازی کنید (همچنین می‌توانید با کلیک کردن روی نماد در کنار نام مخزن در برگه نوشتارها، فرمان شبیه‌سازی دقیق را کپی کنید):

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

پس‌از تکمیل، به پوشه شبیه‌سازی‌شده پیمایش کنید:

cd repository

گزینه الف: بازگرداندن یک دستورگان حذف‌شده

برای بازیابی فایل دستورگان حذف‌شده (برای نمونه، MyScript یا MyFolder/MyScript):

  1. سابقه فایل را مشاهده کنید تا تعهد حذف و تعهد بلافاصله قبل‌از آن را پیدا کنید (در برونداد گزارش درست بعداز آن فهرست شده است):

    git log --oneline -- "MyScript"
    
  2. آخرین نسخه‌ای را که فایل هنوز در آن وجود داشت به پوشه‌تان بازگردانید (<commit_hash> را با درهم‌سازی تعهد قبل‌از حذف جایگزین کنید، یا از <deletion_commit_hash>~1 استفاده کنید):

    git checkout <commit_hash> -- "MyScript"
    
  3. تعهد و ارسال کردن نوشتار بازیابی‌شده به سرور:

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

پس‌از فشار دادن، برگه «دستورگان» ویرایشگر کد را در مرورگرتان مجدداً بار کنید (یا روی دکمه در بالای برگه دستورگان کلیک کنید) تا دستورگان بازیابی‌شده را ببینید.

گزینه ب: بازیابی پوشه حذف‌شده

برای بازیابی پوشه حذف‌شده و همه نوشتارهای درون آن (برای نمونه، MyFolder/):

  1. گزارش‌های تعهد Git خود را بررسی کنید تا تعهد حذف و تعهد بلافاصله قبل‌از آن را پیدا کنید (در برونداد گزارش درست بعداز آن فهرست شده است):

    git log --oneline -- "MyFolder/"
    
  2. آخرین نسخه‌ای را که پوشه هنوز در آن وجود داشت به پوشه‌تان بازگردانید (<commit_hash> را با درهم‌سازی تعهد قبل‌از حذف جایگزین کنید، یا از <deletion_commit_hash>~1 استفاده کنید):

    git checkout <commit_hash> -- "MyFolder/"
    
  3. پوشه بازیابی‌شده را به سرور برگردانید و آن را ارسال کنید:

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

پس‌از انتقال، برگه «کدهای برنامه‌نویسی» را در مرورگرتان مجدد بار کنید (یا روی دکمه در بالای برگه کدهای برنامه‌نویسی کلیک کنید) تا پوشه بازیابی‌شده را ببینید.

گزینه ج: انتقال کل مخزن

اگر نیاز دارید کل مخزن و سابقه تعهد کامل آن را به حساب جدیدی انتقال دهید (برای مثال، هنگام انتقال بین حساب‌های سازمانی و شخصی):

اطلاعات اعتباری و اجازه‌ها: اگر مخزنی را بین دو حساب Google متفاوت انتقال می‌دهید (برای مثال، از حساب دانشگاهی یا کاری به حساب شخصی)، باید قبل‌از شروع مطمئن شوید که حساب جدیدتان اجازه خواندن مخزن قدیمی را دارد:

  • پیش‌نیاز هم‌رسانی: با حساب قدیمی «ویرایشگر کد» خود به سیستم وارد شوید، روی نماد کنار نام مخزن قدیمی‌تان کلیک کنید، و آن را با نشانی ایمیل جدید «حساب Google» خود هم‌رسانی کنید و به آن دسترسی خواننده بدهید.
  • با انجام این کار، فقط لازم است یک‌بار در رایانه محلی‌تان اصالت‌سنجی کنید (بااستفاده از اطلاعات اعتباری Git حساب جدیدتان که در مرحله ۱ تولید شده است). حساب جدید شما اجازه خواهد داشت هم از مخزن قدیمی‌تان شبیه‌سازی کند و هم در مخزن جدیدتان انتقال دهد، و از تعارضات اطلاعات اعتباری جلوگیری کند.
  1. مجموعه اطلاعات قدیمی‌تان را بااستفاده از Git استاندارد به‌صورت محلی شبیه‌سازی کنید:

    git clone https://earthengine.googlesource.com/users/old_username/old_repository
    
  2. از منو جدید > مخزن در حساب جدید «ویرایشگر کد»، مخزن خالی جدیدی ایجاد کنید. (توجه: قبل‌از انتقال، هیچ‌گونه دستورگان یا پوشه‌ای در مخزن جدید ایجاد یا ذخیره نکنید، درغیراین‌صورت انتقال ناموفق خواهد بود.)

  3. به فهرست راهنمای شبیه‌سازی‌شده محلی‌تان پیمایش کنید:

    cd old_repository
    
  4. کل سابقه تعهد محلی و نوشتارهای خود را مستقیماً به مخزن جدید و خالی Earth Engine خود انتقال دهید:

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

پس‌از انتقال، برگه نوشتارها را در «ویرایشگر کد» حساب جدیدتان مجدد بار کنید (یا روی دکمه کلیک کنید) تا مخزن و سابقه انتقال‌یافته را ببینید.