git with आकस्मिक रूप से मास्टर के पास वापस आ गया, असामान्य परिवर्तन खो गया




integrate git bash with visual studio code (5)

यहां महत्वपूर्ण सवाल यह है कि आपने फ़ाइलों में बदलाव करने के बाद क्या किया। यदि आपने एक ऐसी प्रतिबद्धता बनाई है जिसमें फाइलों की नई स्थिति शामिल है, तो आपको गिट रिफ्लॉग में हालिया प्रविष्टियों को देखकर उन्हें वापस लेना चाहिए, प्रतिबद्धता के SHA1sum को ढूंढना और उसके बाद git branch recovered <SHA1sum> साथ एक नई शाखा बनाना git branch recovered <SHA1sum> , या इसी तरह से git branch recovered <SHA1sum>इस जवाब में ऐसा करने का एक उदाहरण है।

यदि आपने उन्हें चरणबद्ध करने के लिए किसी भी फाइल पर git add है, तो आपको उन्हें वापस पाने में भी सक्षम होना चाहिए, लेकिन यह और भी काम है - जैकब वर्णन करता है कि इस जवाब में इसे कैसे किया जाए।

यदि आप खुद को एक साफ स्थिति देने के लिए git stash करना चाहते हैं, तो निश्चित रूप से आप इसे वापस प्राप्त कर सकते हैं क्योंकि आप किसी भी अन्य छेड़छाड़ करेंगे।

अन्यथा, मुझे डर है कि खबर अच्छी नहीं है।

मुझे आशा है कि यह पोस्ट-हाॉक को इंगित करने के लिए परेशान नहीं है, लेकिन master शाखा में वापस जाने के लिए, आपको किसी भी कमांड का उपयोग करने की आवश्यकता नहीं होनी चाहिए जो आपको डेटा खो सकती है - git checkout master ने आपको बताया होगा कि आप पहले से ही थे मास्टर शाखा पर, और किसी भी असामान्य परिवर्तन दिखाएं। (तर्कसंगत रूप से git reset --hard "हां, मेरा वास्तव में यह मतलब है" पुष्टि होनी चाहिए कि अगर असामान्य परिवर्तन हैं, तो कितनी बार लोग ^W मैं डेटा खो देता हूं।)

मैंने मास्टर पर काम करने में एक बड़ी गलती (सोमवार की सुबह) काम करने में कामयाब रहा है, नई शाखा बनाने के लिए भूल गए हैं, फाइलों में बदलाव किए हैं, फिर अनजाने में मास्टर को वापस कर दिया, सभी अपडेट खो दिए। मैंने अद्यतन फाइलें नहीं की हैं।

क्या मैंने सभी अपडेट खो दिए हैं या क्या मैं उन्हें पुनर्प्राप्त कर सकता हूं?

मुझसे मत पूछें कि हर बार जब मैं इसके बारे में सोचता हूं तो मुझे चेहरे पर खुद को पेंच करना पड़ता है।


मैं एक ही स्थिति में फंस गया था।

--हार्ड रीसेट से पहले टर्मिनल में बदली गई फ़ाइलों की एक सूची थी, मेरे संपादक (सब्लिम 2, हालांकि कोई फर्क नहीं पड़ता) में चला गया, प्रत्येक फ़ाइल को खोला और एक बार cmd + z (पूर्ववत) मारा, यह प्रभावी रूप से परिवर्तनों को कम करता है हार्ड रीसेट द्वारा किया गया और मुझे अपने असामान्य परिवर्तन वापस मिल गया :)


मैंने एक ही बात की है, दुर्भाग्य से एक बार से अधिक। कुछ भी गिट करने के बिना आपको पता नहीं है कि आपने क्या लिखा है। यहां तक ​​कि अगर आपने प्रतिबद्ध किया तो पिछड़ा होने पर मुझे यकीन नहीं है कि रिफ्लेक्स मदद करेगा।


दो लंबे शॉट्स: कुछ आईडीई, जैसे डेल्फी, एक संपादक इतिहास रखें। आपके पास कुछ सहारा हो सकता है।
इसके बाद, यदि आपके पास MyDocuments फ़ोल्डर में स्थित आपकी स्थानीय कार्य निर्देशिका थी, तो इसे स्वचालित रूप से विंडोज होम सर्वर, कार्बोनाइट, मोज़िप्रो, आदि द्वारा समर्थित किया जा सकता है .. ये आमतौर पर 'इसे सेट करते हैं और इसे भूल जाते हैं'। शायद आप इसे भूल गए?


रीफ्लॉग का प्रयोग करें। git reflog आपको क्रोनोलॉजिकल ऑर्डर में, आपके द्वारा किए गए सभी git reflog का इतिहास दिखाएगा।

यदि आपने 'मास्टर को चेक आउट' करके अपने परिवर्तन खो दिए हैं, तो आप शायद हेडलेस काम कर रहे थे। git status आपको बताएगी कि क्या आप बिना सिर के काम कर रहे हैं। (जैसा कि git branch करता है)।

कामकाजी हेडलेस इतना बुरा नहीं है (मैं जानबूझ कर यह हर समय करता हूं), लेकिन आपको रिफ्लॉग पर अधिक निर्भरता होगी।

यदि आपने अपने परिवर्तन नहीं किए हैं, तो किसी भी तरह से, फिर उन फ़ाइलों को पुनर्प्राप्त करने का कोई तरीका नहीं है। ऐसा हो सकता है कि यह एकमात्र यथार्थवादी तरीका है यदि आपने हार्ड रीसेट किया है, या स्पष्ट रूप से चेकआउट को मजबूर किया है। जब तक आप सुनिश्चित न हों कि आप डेटा खोने में सहज हैं, तब तक परिवर्तनों को मजबूर करें

आमतौर पर, गिट में, 'फोर्सिंग' निर्दिष्ट करके किया जाता है -f







git