अगर आपने गलती से Earth Engine Code Editor में किसी रिपॉज़िटरी के अंदर मौजूद कोई स्क्रिप्ट या फ़ोल्डर मिटा दिया है या आपको किसी रिपॉज़िटरी को नए खाते में माइग्रेट करना है, तो कमिट का पूरा इतिहास हमारे सर्वर पर Git लॉग में सेव रहता है. कोड एडिटर में मौजूद रिपॉज़िटरी आइकॉन का इस्तेमाल करके, पूरी रिपॉज़िटरी को पिछली स्थिति में वापस लाया जा सकता है. हालांकि, Git के स्टैंडर्ड कमांड-लाइन टूल का इस्तेमाल करके, रिपॉज़िटरी को स्थानीय तौर पर क्लोन करने से, अलग-अलग स्क्रिप्ट या फ़ोल्डर को चुनिंदा तौर पर वापस लाया जा सकता है. इससे अन्य स्क्रिप्ट में किए गए नए बदलाव नहीं मिटते.
कौनसा डेटा वापस लाया जा सकता है
कोड एडिटर के स्क्रिप्ट टैब में, आपका काम इस तरह व्यवस्थित किया जाता है
users/username/repository:folder/script:
- स्क्रिप्ट और फ़ोल्डर (वापस लाए जा सकते हैं): किसी स्क्रिप्ट या फ़ोल्डर को किसी रिपॉज़िटरी से मिटाने पर, वह सिर्फ़ सबसे नए कमिट से हटता है.
earthengine.googlesource.comपर रिपॉज़िटरी अब भी मौजूद है. इसलिए, रिपॉज़िटरी को क्लोन किया जा सकता है. साथ ही, विकल्प A या विकल्प B का इस्तेमाल करके, Git कमिट इतिहास से मिटाई गई फ़ाइलों को वापस लाया जा सकता है. - पूरी रिपॉज़िटरी (वापस नहीं लाई जा सकती): किसी रिपॉज़िटरी (
users/username/repository) को मिटाने पर, Git रिपॉज़िटरी, उसकी स्क्रिप्ट, और उसकी कमिट हिस्ट्री,earthengine.googlesource.comसे हमेशा के लिए हट जाती है ("Repository is not found"पर वापस आ जाती है). मिटाने के बाद, किसी रिपॉज़िटरी को क्लोन या वापस नहीं लाया जा सकता.
सबसे पहले, ज़रूरी शर्तें पूरी करें. इसके बाद, अपने टास्क के हिसाब से इनमें से कोई एक विकल्प चुनें:
- पहला विकल्प: मिटाई गई स्क्रिप्ट को वापस लाना
- विकल्प B: मिटाए गए फ़ोल्डर को वापस लाना
- तीसरा विकल्प: पूरी रिपॉज़िटरी माइग्रेट करना
ज़रूरी शर्तें
पहला चरण: Git क्रेडेंशियल जनरेट करना
Google पर होस्ट की गई Git रिपॉज़िटरी, सुरक्षित टोकन की मदद से पुष्टि करने की सुविधा का इस्तेमाल करती हैं. इसलिए, आपको सबसे पहले अपने लोकल Git क्रेडेंशियल जनरेट करने होंगे:
- अपने वेब ब्राउज़र में, गुप्त या निजी ब्राउज़िंग विंडो खोलें और Git पासवर्ड जनरेटर पर जाएं: earthengine.googlesource.com/new-password (ध्यान दें: सिर्फ़ Earth Engine में रजिस्टर किए गए Google खाते से साइन इन करें. अगर आपको किसी रिपॉज़िटरी को विकल्प C के तहत किसी नए खाते में माइग्रेट करना है, तो पहले अपनी पुरानी रिपॉज़िटरी को अपने नए खाते के साथ शेयर करें. इसके बाद, अपने नए Google खाते से यहां साइन इन करें.)
- स्क्रीन पर दिखने वाले, जनरेट किए गए शेल कमांड के पूरे ब्लॉक को कॉपी करें.
- अपने कंप्यूटर पर टर्मिनल (कमांड लाइन) खोलें. इसके बाद, कॉपी किए गए निर्देशों को चिपकाएं और उन्हें चलाएं. इससे आपकी मशीन के Git कुकी क्रेडेंशियल अपने-आप कॉन्फ़िगर हो जाते हैं.
अगर आपको अपने कंप्यूटर पर पहली बार 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) को वापस लाने के लिए:
फ़ाइल के इतिहास में जाकर, मिटाने से जुड़ा कमिट और उससे ठीक पहले का कमिट ढूंढें. यह कमिट, लॉग आउटपुट में मिटाने से जुड़े कमिट के ठीक बाद दिखता है:
git log --oneline -- "MyScript"फ़ाइल के उस वर्शन को अपने फ़ोल्डर में वापस लाएं जिसमें फ़ाइल मौजूद थी (मिटाए जाने से पहले के कमिट के हैश की जगह पर
<commit_hash>डालें या<deletion_commit_hash>~1का इस्तेमाल करें):git checkout <commit_hash> -- "MyScript"वापस लाई गई स्क्रिप्ट को सर्वर पर कमिट करें और पुश करें:
git commit -m "Restore MyScript from history" git push origin
पुश करने के बाद, अपने ब्राउज़र में कोड एडिटर स्क्रिप्ट टैब को फिर से लोड करें. इसके अलावा, स्क्रिप्ट टैब में सबसे ऊपर मौजूद बटन पर क्लिक करके भी, वापस लाई गई स्क्रिप्ट देखी जा सकती है.
दूसरा विकल्प: मिटाए गए फ़ोल्डर को वापस लाना
मिटाए गए फ़ोल्डर और उसमें मौजूद सभी स्क्रिप्ट (जैसे, MyFolder/) वापस लाने के लिए:
Git कमिट लॉग में जाकर, मिटाने की कमिट और उससे ठीक पहले की कमिट ढूंढें. यह कमिट, लॉग आउटपुट में इसके ठीक बाद दिखती है:
git log --oneline -- "MyFolder/"अपने फ़ोल्डर में उस वर्शन को वापस लाएं जिसमें फ़ोल्डर मौजूद था (
<commit_hash>को मिटाए जाने से पहले के कमिट के हैश से बदलें या<deletion_commit_hash>~1का इस्तेमाल करें):git checkout <commit_hash> -- "MyFolder/"अपने वापस लाए गए फ़ोल्डर को सर्वर पर वापस भेजें:
git commit -m "Restore MyFolder and all its scripts" git push origin
पुश करने के बाद, अपने ब्राउज़र में कोड एडिटर के स्क्रिप्ट टैब को फिर से लोड करें. इसके अलावा, स्क्रिप्ट टैब में सबसे ऊपर मौजूद बटन पर क्लिक करके भी, वापस लाए गए फ़ोल्डर को देखा जा सकता है.
विकल्प C: पूरी रिपॉज़िटरी माइग्रेट करना
अगर आपको पूरी रिपॉज़िटरी और उसके कमिट का पूरा इतिहास किसी नए खाते में माइग्रेट करना है (उदाहरण के लिए, संस्थागत और निजी खातों के बीच स्विच करते समय):
क्रेडेंशियल और अनुमतियां: अगर आपको किसी रिपॉज़िटरी को दो अलग-अलग Google खातों के बीच माइग्रेट करना है (उदाहरण के लिए, किसी यूनिवर्सिटी या ऑफ़िस वाले खाते से निजी खाते में), तो आपको यह पक्का करना होगा कि आपके नए खाते के पास पुरानी रिपॉज़िटरी को पढ़ने की अनुमति हो. इसके बाद ही, माइग्रेशन शुरू करें:
- शेयर करने की ज़रूरी शर्त: अपने पुराने Code Editor खाते में साइन इन करें. इसके बाद, अपनी पुरानी रिपॉज़िटरी के नाम के बगल में मौजूद आइकॉन पर क्लिक करें. अब इसे अपने नए Google खाते के ईमेल पते के साथ शेयर करें. साथ ही, इसे रीडर का ऐक्सेस दें.
- ऐसा करने पर, आपको सिर्फ़ अपने लोकल कंप्यूटर पर एक बार पुष्टि करनी होगी. इसके लिए, पहले चरण में जनरेट किए गए, अपने नए खाते के Git क्रेडेंशियल का इस्तेमाल करें. आपके नए खाते के पास, आपकी पुरानी रिपॉज़िटरी से क्लोन करने और नई रिपॉज़िटरी में पुश करने की अनुमति होगी. इससे क्रेडेंशियल से जुड़ी समस्याएं नहीं होंगी.
स्टैंडर्ड Git का इस्तेमाल करके, अपनी पुरानी रिपॉज़िटरी को स्थानीय तौर पर क्लोन करें:
git clone https://earthengine.googlesource.com/users/old_username/old_repositoryअपने नए Code Editor खाते में, नया > रिपॉज़िटरी मेन्यू से एक नई, खाली रिपॉज़िटरी बनाएं. (ध्यान दें: पुश करने से पहले, नई रिपॉज़िटरी में कोई भी स्क्रिप्ट या फ़ोल्डर न बनाएं और न ही सेव करें. ऐसा करने पर, पुश नहीं हो पाएगा.)
क्लोन की गई अपनी लोकल डायरेक्ट्री पर जाएं:
cd old_repositoryअपनी पूरी लोकल कमिट हिस्ट्री और स्क्रिप्ट को सीधे तौर पर अपनी नई और खाली Earth Engine रिपॉज़िटरी में पुश करें:
git push https://earthengine.googlesource.com/users/new_username/new_repository --all
पुश करने के बाद, अपने नए खाते के कोड एडिटर में स्क्रिप्ट टैब को फिर से लोड करें. इसके अलावा, माइग्रेट की गई रिपॉज़िटरी और इतिहास देखने के लिए, बटन पर क्लिक करें.