Git Reflog क्या हैं?
git reflogशाखाओं और HEAD के नोड में अपडेट लॉग करता है।
यह आपको यह देखने की अनुमति देता है कि आपकी शाखा और प्रमुख कहाँ हैं, यहाँ तक कि गलतियाँ भी की गईं।
यह खोए हुए कमिट को पुनर्प्राप्त करने या रीसेट को रद्द करने के लिए उपयोगी है।
Git Reflog-Kab का उपयोग अवश्य करें
Git Reflog- :
खोई हुई प्रतिबद्धताएँ पुनर्प्राप्त करें
खोई हुई प्रतिबद्धताएँ या परिवर्तन पुनर्प्राप्त करें
मर्ज को रीसेट करें या रद्द करें
रीसेट या मर्ज रद्द करें
इतिहास देखो
अपनी शाखा और प्रमुख का इतिहास जांचें
रीफ्लॉग दिखाएँ
जहां HEAD और शाखाएं इंगित की गई हैं उसका इतिहास देखने के लिए, इसका उपयोग करें:
उदाहरण
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
...
यह HEAD की नवीनतम स्थिति को सूचीबद्ध करता है, ताकि आप कमिट, रीसेट, मर्ज और चेकआउट जैसी क्रियाएं देख सकें।
खोई हुई प्रतिबद्धताओं को ढूंढें और पुनर्स्थापित करें
यदि आप गलती से कमिट को रीसेट या हटा देते हैं, तो आप कमिट को खोजने और पुनर्स्थापित करने के लिए रीफ्लॉग का उपयोग कर सकते हैं।
रिफ्लॉग में प्रत्येक प्रविष्टि के लिएHEAD@{2}ऐसा ही एक नोट है.
उदाहरण: हार्ड रीसेट रद्द करें
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
...
git reset --hard HEAD@{2}
HEAD is now at 9a9add8 Added .gitignore
इससे आपकी शाखा उस स्थिति में पुनर्स्थापित हो जाती है जैसी वह उस समय थी।
प्रतिबद्धता पुनर्प्राप्त!
आपने Reflog का उपयोग करके खोई हुई प्रतिबद्धता को सफलतापूर्वक पुनर्प्राप्त कर लिया है।
रिफ्लॉग साफ़ करें
रिफ्लॉग को Git द्वारा स्वचालित रूप से साफ़ किया जाता है, लेकिन यदि आवश्यक हो तो पुरानी प्रविष्टियाँ मैन्युअल रूप से समाप्त की जा सकती हैं:
उदाहरण
git reflog expire --expire=30.days refs/heads/main
git gc --prune=now
Counting objects: 15, done.
Compressing objects: 100% (10/10), done.
Pruning objects
यह मुख्य शाखा के लिए 30 दिनों से अधिक पुरानी रीफ्लॉग प्रविष्टियों को हटा देता है और कचरा संग्रहण को सक्षम बनाता है।
युक्तियाँ एवं सर्वोत्तम प्रथाएँ
उपयोग जारी रखें
अपने परिवर्तनों को नियमित रूप से ट्रैक करेंgit reflogउपयोग
खोया हुआ पुनः प्राप्त करें
खोई हुई प्रतिबद्धताओं या परिवर्तनों को पुनर्प्राप्त करने के लिएgit reflogउपयोग
साफ - सफाई
पुरानी प्रविष्टियाँ साफ़ करेंgit reflog expireउपयोग
समस्या निवारण
git reflogयदि -प्रयास से समस्या आ रही है:
Git
अधिक जानकारी के लिए Git दस्तावेज़ देखें
ऑनलाइन खोजें
विशिष्ट समस्याओं के समाधान के लिए ऑनलाइन खोजें
मदद के लिए पूछना
किसी Git विशेषज्ञ या समुदाय से सहायता मांगें
चेतावनियाँ
महत्वपूर्ण चेतावनी
खोई हुई प्रतिबद्धताओं या परिवर्तनों को पुनर्प्राप्त करने के लिएgit reflogइसका उपयोग करते समय सावधान रहें क्योंकि यह मौजूदा परिवर्तनों को अधिलेखित कर सकता है।
त्वरित संदर्भ
रीफ्लॉग दिखाएँ
HEAD का इतिहास देखें
git reflog
प्रतिबद्धता वापस करें
खोई हुई प्रतिबद्धता को पुनर्स्थापित करें
git reset --hard HEAD@{2}
रिफ्लॉग साफ़ करें
पुरानी प्रविष्टियाँ हटाएँ
git reflog expire
Garbage Collection
कचरा संग्रहण सक्षम करें
git gc --prune=now