Git Reflog और इतिहास की पुनर्प्राप्ति
खोए हुए कमिट्स या ब्रांच्स को पुनर्प्राप्त करने के लिए `git reflog` में दक्ष बनिए और अपने काम के लिए सुरक्षा-जाल तैयार कीजिए।
Git Reflog और इतिहास की पुनर्प्राप्ति, CoddyKit पर DevOps बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह DevOps बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Git Reflog क्या है?
क्या आपने कभी गलती से कोई शाखा हटा दी है या गलत कमिट पर रीसेट कर दिया है? घबराइए नहीं! Git में Reflog नामक एक शक्तिशाली सुरक्षा-जाल होता है।
रीफ़्लॉग (रेफ़रेंस लॉग) आपके HEAD और शाखा संकेतकों के आपके स्थानीय रिपॉज़िटरी में रहे स्थानों का रिकॉर्ड होता है।
रीफ़्लॉग इतिहास को कैसे ट्रैक करता है
कमिट इतिहास (git log) से अलग, जो आपकी प्रोजेक्ट फ़ाइलों में हुए बदलावों को ट्रैक करता है, रीफ़्लॉग आपकी रिपॉज़िटरी के रेफ़रेंस में हुए बदलावों को ट्रैक करता है।
जब भी आपका HEAD (आपका वर्तमान कमिट) या शाखा संकेतक स्थान बदलता है, Git इस घटना को रीफ़्लॉग में दर्ज करता है। इसमें ये क्रियाएँ शामिल हैं:
- बदलावों को कमिट करना
- शाखाएँ बदलना
- मर्ज करना या रीबेस करना
- रीसेट करना
- रिपॉज़िटरी का क्लोन बनाना
अपना रीफ़्लॉग देखना
अपना रीफ़्लॉग देखने के लिए आपको केवल git reflog कमांड का उपयोग करना है। यह उस समय की क्रियाओं और आपके HEAD की स्थिति की सूची दिखाता है।
आइए कुछ क्रियाओं का अनुकरण करके रीफ़्लॉग देखते हैं:
git init my_repo
cd my_repo
echo "First line" > file.txt
git add file.txt
git commit -m "Initial commit"
echo "Second line" >> file.txt
git add file.txt
git commit -m "Add second line"
git reflogरीफ़्लॉग प्रविष्टियों को समझना
हर रीफ़्लॉग प्रविष्टि का एक निश्चित प्रारूप होता है। आइए उस सामान्य प्रविष्टि को समझते हैं जिसे आप देख सकते हैं:
a1b2c3d HEAD@{0}: commit: Add new feature
a1b2c3d: उस कमिट का SHA-1 हैश, जहाँ उस समयHEADमौजूद था।HEAD@{0}: यह "रीफ़्लॉग प्रविष्टि संकेतक" है।@{0}सबसे हाल की स्थिति है,@{1}उससे पहले की स्थिति है, और इसी तरह आगे।commit: Add new feature: उस क्रिया का विवरण जिसके कारणHEADका स्थान बदला।
ये संकेतक पुनर्प्राप्ति के लिए बेहद महत्वपूर्ण हैं!
परिदृश्य: खोए हुए कमिट को पुनर्प्राप्त करना
मान लीजिए आपने एक कमिट किया और फिर गलती से git reset --soft HEAD~1 से उसे पूर्ववत कर दिया। आपका कमिट अब आपकी वर्तमान शाखा के इतिहास में नहीं है, लेकिन वह वास्तव में गायब नहीं हुआ है!
रीफ़्लॉग उसे याद रखता है। आइए इस सामान्य गलती का अनुकरण करते हैं:
git init my_project_recovery
cd my_project_recovery
echo "Initial content" > start.txt
git add start.txt
git commit -m "Initial commit"
echo "Important feature" > feature.txt
git add feature.txt
git commit -m "Added an important feature"
# Oops! Accidentally reset
git reset --soft HEAD~1
git reflogकमिट को वापस लाना
रीसेट के बाद, यदि आप git reflog चलाते हैं, तो आपको अपने "Added an important feature" कमिट की एक प्रविष्टि दिखाई देगी, संभवतः HEAD@{1} या इसी तरह के रूप में।
इसे पुनर्प्राप्त करने के लिए आप रीफ़्लॉग प्रविष्टि के साथ git reset का उपयोग कर सकते हैं। उदाहरण के लिए, यदि खोए हुए कमिट का हैश abcdefg था या उसकी रीफ़्लॉग प्रविष्टि HEAD@{1} थी:
# Assuming the lost commit was HEAD@{1} in the reflog
git reset --hard HEAD@{1}
# Or using the specific commit hash from reflog
# git reset --hard abcdefg
# Now, check your log. The commit is back!
git log --onelineपरिदृश्य: हटाई गई शाखा को पुनः प्राप्त करना
यदि आपने किसी शाखा को मर्ज करने से पहले गलती से हटा दिया हो, या आपको लगा हो कि अब उसकी ज़रूरत नहीं है, तो क्या होगा?
शाखाएँ केवल कमिट की ओर संकेतक होती हैं। किसी शाखा को हटाने पर उसके द्वारा इंगित कमिट आपकी रिपॉज़िटरी से तुरंत नहीं हटते। रीफ़्लॉग अब भी याद रखता है कि उस शाखा का HEAD कहाँ था!
रीफ़्लॉग से शाखा पुनर्स्थापित करना
मान लीजिए आपकी feature-x नाम की एक शाखा थी, आपने उस पर काम किया और फिर git branch -D feature-x से उसे हटा दिया।
जब आप git reflog चलाते हैं, तो आपको ऐसी प्रविष्टि दिखाई दे सकती है:
1234567 HEAD@{5}: branch: Created branch feature-x orabcdefg HEAD@{2}: checkout: moving from feature-x to master
रीफ़्लॉग की उस प्रविष्टि से कमिट हैश (जैसे 1234567 या abcdefg) का उपयोग करके, जहाँ शाखा सक्रिय थी, आप उसे फिर से बना सकते हैं:
# Assume 'feature-x' was deleted and its last commit was '1234567'
# Create a new branch pointing to that commit
git branch feature-x-recovered 1234567
# Now, check out your recovered branch
git checkout feature-x-recovered
# Verify its history
git log --onelineरीफ़्लॉग प्रविष्टियाँ समाप्त हो जाती हैं
हालाँकि रीफ़्लॉग एक शक्तिशाली सुरक्षा-जाल है, इसकी प्रविष्टियाँ हमेशा नहीं रहतीं। Git एक निश्चित अवधि के बाद पुरानी रीफ़्लॉग प्रविष्टियों को हटा देता है।
- डिफ़ॉल्ट रूप से, पहुँच योग्य प्रविष्टियाँ (आपके वर्तमान
HEADसे) 90 दिनों बाद समाप्त हो जाती हैं। - पहुंच से बाहर प्रविष्टियाँ (जैसे हटाई गई शाखाओं या अब संदर्भित न किए जाने वाले कमिट की प्रविष्टियाँ) 30 दिनों बाद समाप्त हो जाती हैं।
इसलिए "खोए हुए" काम को देर करने के बजाय जल्द पुनर्प्राप्त करना बेहतर है!
रीफ़्लॉग पुनर्प्राप्ति चुनौती
आपने एक नई सुविधा शाखा बनाई, कई कमिट किए और फिर उसे मर्ज किए बिना गलती से हटा दिया। आप git reflog चलाते हैं और यह प्रविष्टि देखते हैं:
...
c0ffee1 HEAD@{3}: commit: Implement new user profile page
bada55e HEAD@{4}: checkout: moving from feature/profile to main
...कौन-सा कमांड क्रम हटाए जाने से पहले आपकी feature/profile शाखा के सबसे नवीन कमिट की ओर संकेत करते हुए उसे सही ढंग से फिर से बनाएगा?
रीफ़्लॉग: आपका Git सुरक्षा-जाल
आपने git reflog में दक्षता हासिल कर ली है, जो आपकी स्थानीय Git रिपॉज़िटरी में "खोए हुए" काम को पुनर्प्राप्त करने का एक महत्वपूर्ण उपकरण है। याद रखें:
- यह ट्रैक करता है कि
HEADऔर शाखा संकेतक कहाँ-कहाँ रहे हैं। - इस इतिहास को देखने के लिए
git reflogका उपयोग करें। - रीफ़्लॉग प्रविष्टियों (
HEAD@{n}या कमिट हैश) के साथgit resetयाgit branchका उपयोग करके आप कमिट या शाखाएँ पुनर्प्राप्त कर सकते हैं। - रीफ़्लॉग प्रविष्टियाँ समाप्त हो जाती हैं, इसलिए यदि आपको कुछ पुनर्प्राप्त करना हो तो जल्दी कार्रवाई करें!
अपना Git इतिहास व्यवस्थित रखें, लेकिन यह जानें कि आपात स्थिति में रीफ़्लॉग मौजूद है!
एआई शिक्षक के साथ DevOps बूटकैंप सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 142
- पाठ
- 568
अक्सर पूछे जाने वाले प्रश्न
क्या “Git Reflog और इतिहास की पुनर्प्राप्ति” पाठ निःशुल्क है?
हाँ — DevOps बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Git Reflog और इतिहास की पुनर्प्राप्ति” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Git Reflog और इतिहास की पुनर्प्राप्ति” में मैं क्या सीखूँगा?
खोए हुए कमिट्स या ब्रांच्स को पुनर्प्राप्त करने के लिए `git reflog` में दक्ष बनिए और अपने काम के लिए सुरक्षा-जाल तैयार कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ DevOps बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या DevOps बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर DevOps बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Git Reflog और इतिहास की पुनर्प्राप्ति” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस DevOps बूटकैंप पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर DevOps बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Git Reflog और इतिहास की पुनर्प्राप्ति
- डीबगिंग के लिए Git Bisect
- रिपॉज़िटरी रखरखाव और सफ़ाई
- git filter-repo से इतिहास का पुनर्लेखन