Git Recovery क्या है?
Git recovery का अर्थ है खोई हुई कमिट्स, शाखाएँ या फ़ाइलें पुनः प्राप्त करना।
Git हाल के परिवर्तनों का रिकॉर्ड रखता है, इसलिए रीसेट या डिलीट करने के बाद भी आप गलतियों को पूर्ववत कर सकते हैं।
Git Recovery-कब उपयोग करें
Git Recovery का उपयोग करें:
शाखा या फ़ाइल गलती से डिलीट हो जाए
गलती से कोई शाखा या फ़ाइल डिलीट हो जाए
रीसेट करके परिवर्तन खो दें
अपनी शाखा को पिछली कमिट पर रीसेट करके परिवर्तन खो दें
खोई हुई कमिट्स पुनर्प्राप्त करें
खोई हुई कमिट्स या परिवर्तन पुनर्प्राप्त करने की आवश्यकता हो
git reflog के साथ खोई हुई कमिट्स पुनर्प्राप्त करें
git reflog शाखाओं के सिरों में परिवर्तनों का रिकॉर्ड रखता है और आपको खोई हुई कमिट्स ढूंढने की अनुमति देता है।
उदाहरण: Reflog दिखाएँ
git reflog
e56ba1f (HEAD -> master) HEAD@{0}: commit: Revert "Just a regular update, definitely no accidents here..."
52418f7 HEAD@{1}: commit: Just a regular update, definitely no accidents here...
9a9add8 (origin/master) HEAD@{2}: commit: Added .gitignore
81912ba HEAD@{3}: commit: Corrected spelling error
3fdaa5b HEAD@{4}: merge: Merge pull request #1 from jassifteam-test/update-readme
836e5bf HEAD@{5}: commit: Updated readme for GitHub Branches
...
सूची से उस कमिट हैश को ढूंढें जिसे आप पुनर्प्राप्त करना चाहते हैं।
डिलीट की गई शाखा पुनर्स्थापित करें
यदि आपने कोई शाखा डिलीट की है, लेकिन कमिट्स अभी भी reflog में हैं, तो आप इसे फिर से बना सकते हैं:
उदाहरण: एक शाखा पुनर्स्थापित करें
git checkout -b branch-name <commit-hash>
Switched to a new branch 'branch-name'
यह आपके द्वारा निर्दिष्ट कमिट पर शाखा को वापस लाता है।
डिलीट या बदली गई फ़ाइल पुनर्प्राप्त करें
यदि आपने कोई फ़ाइल डिलीट की है या बदली है और इसे वापस पाना चाहते हैं, तो git restore का उपयोग करें:
उदाहरण: एक फ़ाइल पुनर्स्थापित करें
git restore filename.txt
यह नवीनतम कमिट से फ़ाइल को वापस लाता है।
Hard Reset से पुनर्प्राप्त करें
यदि आपने git reset --hard का उपयोग करके कमिट्स खो दी हैं, तो आप उन्हें ढूंढने और पुनर्स्थापित करने के लिए reflog का उपयोग कर सकते हैं:
उदाहरण: Hard Reset पूर्ववत करें
git reflog
e56ba1f (HEAD -> master) HEAD@{0}: commit: Revert "Just a regular update, definitely no accidents here..."
52418f7 HEAD@{1}: commit: Just a regular update, definitely no accidents here...
9a9add8 (origin/master) HEAD@{2}: commit: Added .gitignore
81912ba HEAD@{3}: commit: Corrected spelling error
3fdaa5b HEAD@{4}: merge: Merge pull request #1 from jassifteam-test/update-readme
836e5bf HEAD@{5}: commit: Updated readme for GitHub Branches
...
git reset --hard HEAD@{2}
HEAD is now at 9a9add8 Added .gitignore
यह उस समय की स्थिति में आपकी शाखा को वापस लाता है।
सफल पुनर्प्राप्ति!
आपने reflog का उपयोग करके खोई हुई कमिट्स और परिवर्तन सफलतापूर्वक पुनर्प्राप्त कर लिए हैं।
युक्तियाँ और सर्वोत्तम प्रथाएं
नियमित रूप से कमिट करें
कार्य खोने से बचने के लिए अपने परिवर्तन नियमित रूप से कमिट करें।
Reflog का उपयोग करें
खोई हुई कमिट्स ढूंढने के लिए git reflog का उपयोग करें।
फ़ाइलें पुनर्प्राप्त करें
डिलीट या बदली गई फ़ाइलें पुनर्प्राप्त करने के लिए git restore का उपयोग करें।
शाखाओं का बैकअप लें
महत्वपूर्ण शाखाओं को रिमोट रिपॉजिटरी पर पुश करके बैकअप लें।
त्वरित संदर्भ
Reflog दिखाएँ
HEAD इतिहास देखें
git reflog
शाखा पुनर्स्थापित करें
डिलीट की गई शाखा फिर से बनाएँ
git checkout -b branch <hash>
फ़ाइल पुनर्प्राप्त करें
डिलीट की गई फ़ाइल पुनर्प्राप्त करें
git restore file
रीसेट पूर्ववत करें
Hard reset पूर्ववत करें
git reset --hard HEAD@{n}