স্ক্রিপ্ট ফিরিয়ে আনা ও রিপোজিটরি মাইগ্রেশন

আপনি যদি ভুলবশত Earth Engine কোড এডিটরের মধ্যে কোনও রিপোজিটরি থেকে কোনও স্ক্রিপ্ট বা ফোল্ডার মুছে দেন অথবা কোনও রিপোজিটরিকে নতুন অ্যাকাউন্টে মাইগ্রেট করার প্রয়োজন হয়, তাহলে সম্পূর্ণ কমিট ইতিহাস আমাদের সার্ভারে Git লগে সংরক্ষিত থাকে। কোড এডিটরে থাকা রিপোজিটরি আইকন কোনও সম্পূর্ণ রিপোজিটরিকে আগের অবস্থায় ফিরিয়ে নিয়ে গেলেও, স্ট্যান্ডার্ড Git কমান্ড-লাইন টুল ব্যবহার করে রিপোজিটরিকে লোকালি ক্লোন করলে, আপনি অন্যান্য স্ক্রিপ্টে করা নতুন পরিবর্তন না হারিয়েই, বেছে বেছে আলাদা আলাদা স্ক্রিপ্ট বা ফোল্ডার ফিরিয়ে আনতে পারবেন।

কী কী রিকভার করা যেতে পারে

কোড এডিটরের স্ক্রিপ্ট ট্যাবে, আপনার কাজকে এভাবে সাজানো হয় users/username/repository:folder/script:

  • স্ক্রিপ্ট ও ফোল্ডার (ফিরিয়ে আনা যায়): কোনও রেপোজিটরি থেকে স্ক্রিপ্ট বা ফোল্ডার মুছে দিলে, সেটি শুধুমাত্র লেটেস্ট কমিট থেকে মুছে যায়। যেহেতু earthengine.googlesource.com-এ রেপোজিটরিটি এখনও আছে, তাই আপনি রেপোজিটরি ক্লোন করতে এবং এর Git কমিট ইতিহাস থেকে মুছে দেওয়া ফাইল রিস্টোর করতে বিকল্প 'ক' বা বিকল্প 'খ' ব্যবহার করতে পারবেন।
  • সম্পূর্ণ রিপোজিটরি (ফিরিয়ে আনা যায় না): কোনও রিপোজিটরি মুছে দিলে (users/username/repository) earthengine.googlesource.com থেকে সেটি স্থায়ীভাবে মুছে যায় ("Repository is not found" রিটার্ন করে) এবং এর সাথে সাথে এর Git রিপোজিটরি, স্ক্রিপ্ট ও কমিট ইতিহাসও মুছে যায়। মুছে দেওয়ার পরে, কোনও রিপোজিটরি ক্লোন করা বা ফিরিয়ে আনা যায় না।

প্রথমে পূর্বশর্ত সম্পূর্ণ করুন, তারপর আপনার টাস্কের উপর নির্ভর করে নিম্নলিখিত বিকল্পগুলির মধ্যে একটি বেছে নিন:

পূর্বশর্ত

ধাপ ১: Git ক্রেডেনশিয়াল তৈরি করুন

Google-হোস্ট করা Git repository নিরাপদ টোকেন যাচাইকরণ ব্যবহার করে বলে, আপনাকে প্রথমে নিজের লোকাল Git ক্রেডেনশিয়াল তৈরি করতে হবে:

  1. আপনার ওয়েব ব্রাউজারে ছদ্মবেশী বা ব্যক্তিগত ব্রাউজিং উইন্ডো খুলুন এবং Git পাসওয়ার্ড জেনারেটর দেখুন: earthengine.googlesource.com/new-password (মনে রাখবেন: শুধু আপনার Earth Engine-এ রেজিস্টার করা Google অ্যাকাউন্ট দিয়ে সাইন-ইন করুন। আপনি যদি বিকল্প 'গ'-এর অধীনে কোনও নতুন অ্যাকাউন্টে কোনও রিপোজিটরি মাইগ্রেট করেন, তাহলে প্রথমে আপনার নতুন অ্যাকাউন্টের সাথে পুরনো রিপোজিটরি শেয়ার করুন এবং আপনার নতুন Google অ্যাকাউন্ট দিয়ে এখানে সাইন-ইন করুন।)
  2. স্ক্রিনে দেখানো জেনারেট করা শেল কমান্ডের সম্পূর্ণ ব্লকটি কপি করুন।
  3. আপনার কম্পিউটারে একটি টার্মিনাল (কমান্ড লাইন) খুলুন, কপি করা কমান্ড পেস্ট করুন এবং সেগুলি রান করুন। এটি আপনার মেশিনের Git কুকি ক্রেডেনশিয়াল অটোমেটিক কনফিগার করে।
  4. আপনি যদি এই প্রথমবার আপনার কম্পিউটারে Git ব্যবহার করেন, তাহলে আপনার লেখকের নাম এবং ইমেল কনফিগার করুন যাতে Git আপনাকে কমিট তৈরি করতে দেয়:

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

ধাপ ২: আপনার রিপোজিটরি ক্লোন করুন (বিকল্প 'ক' ও 'খ')

আপনি যদি অ্যাকাউন্টগুলির মধ্যে কোনও রেপোজিটরি মাইগ্রেট করেন, তাহলে বিকল্প 'গ'-তে যান। মুছে দেওয়া স্ক্রিপ্ট বা ফোল্ডার ফিরিয়ে আনতে, আপনার Earth Engine সংক্রান্ত বিবরণ দিয়ে username ও repository পাল্টে আপনার লোকাল টার্মিনালে আপনার রিপোজিটরি ক্লোন করুন (এছাড়াও, আপনি স্ক্রিপ্ট ট্যাবে রিপোজিটরি নামের পাশে থাকা আইকনে ক্লিক করে হুবহু ক্লোন কমান্ড কপি করতে পারেন):

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
    

পুশ করা হয়ে গেলে, রিস্টোর করা স্ক্রিপ্ট দেখতে আপনার ব্রাউজারে Code Editor স্ক্রিপ্ট ট্যাব আবার লোড করুন (অথবা স্ক্রিপ্ট ট্যাবের উপরে থাকা বোতামে ক্লিক করুন)।

বিকল্প খ: মুছে দেওয়া ফোল্ডার ফিরিয়ে আনা

মুছে দেওয়া ফোল্ডার ও তার মধ্যে থাকা সব স্ক্রিপ্ট (যেমন, 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
    

পুশ করা হয়ে গেলে, রিস্টোর করা ফোল্ডার দেখতে আপনার ব্রাউজারে Code Editor-এর স্ক্রিপ্ট ট্যাব আবার লোড করুন (অথবা স্ক্রিপ্ট ট্যাবের উপরের দিকে থাকা বোতামে ক্লিক করুন)।

বিকল্প গ: সম্পূর্ণ রিপোজিটরি মাইগ্রেট করা

আপনাকে যদি কোনও সম্পূর্ণ রিপোজিটরি ও তার সম্পূর্ণ কমিট ইতিহাস একটি নতুন অ্যাকাউন্টে (যেমন, প্রতিষ্ঠানিক ও ব্যক্তিগত অ্যাকাউন্টের মধ্যে ট্রানজিশন করার সময়) মাইগ্রেট করতে হয়:

ক্রেডেনশিয়াল ও অনুমতি: আপনি যদি দুটি আলাদা Google অ্যাকাউন্টের মধ্যে কোনও রেপোজিটরি মাইগ্রেট করেন (যেমন, বিশ্ববিদ্যালয় বা অফিস অ্যাকাউন্ট থেকে ব্যক্তিগত অ্যাকাউন্টে), তাহলে আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আপনার নতুন অ্যাকাউন্টের কাছে পুরনো রেপোজিটরি পড়ার অনুমতি আছে তবেই আপনি শুরু করতে পারবেন:

  • শেয়ার করার পূর্বশর্ত: আপনার পুরনো Code Editor অ্যাকাউন্টে সাইন-ইন করুন, আপনার পুরনো রেপোজিটরি নামের পাশে থাকা আইকনে ক্লিক করুন এবং আপনার নতুন Google অ্যাকাউন্টের ইমেল আইডির সাথে এটি শেয়ার করুন, এর ফলে সেটি রিডার অ্যাক্সেস পাবে।
  • এটি করলে, আপনাকে শুধু নিজের লোকাল কম্পিউটারে একবার যাচাই করতে হবে (ধাপ ১-এ তৈরি করা আপনার নতুন অ্যাকাউন্টের Git ক্রেডেনশিয়াল ব্যবহার করে)। আপনার নতুন অ্যাকাউন্টের কাছে পুরনো রিপোজিটরি থেকে ক্লোন করা এবং নতুন রিপোজিটরিতে পুশ করার অনুমতি থাকবে, এর ফলে ক্রেডেনশিয়াল সংক্রান্ত কোনও সমস্যা হবে না।
  1. সাধারণ Git ব্যবহার করে আপনার পুরনো রিপোজিটরি লোকালি ক্লোন করুন:

    git clone https://earthengine.googlesource.com/users/old_username/old_repository
    
  2. আপনার নতুন Code Editor অ্যাকাউন্টে নতুন > রিপোজিটরি মেনু থেকে নতুন, খালি রিপোজিটরি তৈরি করুন। (মনে রাখবেন: পুশ করার আগে নতুন রিপোজিটরিতে কোনও স্ক্রিপ্ট বা ফোল্ডার তৈরি বা সেভ করবেন না, তা না হলে পুশ করা যাবে না।)

  3. আপনার স্থানীয় ক্লোন করা ডিরেক্টরিতে নেভিগেট করুন:

    cd old_repository
    
  4. আপনার সম্পূর্ণ লোকাল কমিট ইতিহাস ও স্ক্রিপ্ট সরাসরি আপনার নতুন, খালি Earth Engine রিপোজিটরিতে পুশ করুন:

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

পুশ করা হয়ে গেলে, আপনার নতুন অ্যাকাউন্টের কোড এডিটরে স্ক্রিপ্ট ট্যাব রিলোড করুন (অথবা বোতামে ক্লিক করুন) যাতে মাইগ্রেট করা রিপোজিটরি ও ইতিহাস দেখতে পান।