Git के साथ नियमित रूप से काम करने वाले डेवलपर्स के लिए इतिहास में हेरफेर करना बहुत आम है। दरअसल, डेवलपर्स को अक्सर Git इतिहास से कमिट हटाने की आवश्यकता होती है। सौभाग्य से, Git इस ऑपरेशन को संभव बनाने के लिए कई कमांड प्रदान करता है।
आइए इस तक पहुंचें 😎.
चरण 0 - तैयारी
Git इतिहास में हेरफेर करने से पहले, सुनिश्चित करें कि git status कमांड का उपयोग करके आपकी कार्यशील निर्देशिका किसी भी बदलाव से साफ़ है।
चरण 1 - स्थानीय रूप से कमिट हटाएँ
किसी दूरस्थ सर्वर से कमिट हटाने के लिए, सबसे पहले, आपको उन्हें अपने स्थानीय इतिहास से हटाना होगा।
1.1 ऊपर से लगातार प्रतिबद्धताओं के लिए
यदि आप जिन कमिट्स को हटाना चाहते हैं, वे आपके कमिट हिस्ट्री के शीर्ष पर रखे गए हैं, तो HEAD
ऑब्जेक्ट के साथ git reset --hard
कमांड का उपयोग करें और उन कमिट्स की संख्या का पता लगाएं जिन्हें आप हटाना चाहते हैं।
git reset --hard HEAD~1
यह कमांड नवीनतम कमिट को हटा देगा।
git reset --hard HEAD~3
यह कमांड नवीनतम तीन कमिट्स को हटा देगा।
आप किसी कमिट के हैश का उपयोग करके किसी विशिष्ट कमिट तक को हटा भी सकते हैं, जैसे:
git reset --hard <hash>
1.2 गैर-लगातार प्रतिबद्धताओं के लिए
हालाँकि, यदि आप गैर-लगातार प्रतिबद्धताओं को हटाना चाहते हैं, तो आपको एक इंटरैक्टिव रिबेस का उपयोग करने की आवश्यकता होगी।
- [ ] अंतिम कमिट हैश ढूंढें जिसमें वे सभी कमिट शामिल हैं जिन्हें आप
git reflog
कमांड का उपयोग करके हटाना चाहते हैं। - [ ]
git rebase -i <hash>
के साथ एक इंटरैक्टिव रीबेस प्रारंभ करें। - [ ] संपादन स्क्रीन में, उन प्रतिबद्ध पंक्तियों को ढूंढें जिन्हें आप हटाना चाहते हैं और उन्हें हटा दें।
- [ ] सहेजें और बाहर निकलें (आपको विवादों को हल करने की आवश्यकता हो सकती है)
- [ ] इंटरैक्टिव रिबेस को
git rebase --continue
रिबेस को निरस्त करके जारी रखें या फिर से शुरू करें।
चरण 2 - रिमोट से कमिट हटाएँ
रिमोट से कमिट हटाने के लिए, आपको git पुश कमांड का उपयोग करके अपने स्थानीय परिवर्तनों को रिमोट पर पुश करना होगा।
git push origin HEAD --force
चूँकि आपका स्थानीय इतिहास दूरस्थ इतिहास से भिन्न है, इसलिए आपको force
विकल्प का उपयोग करने की आवश्यकता है।
अंतिम विचार
जैसा कि आप देख सकते हैं, Git रिमोट सर्वर से कमिट को हटाना आसान बनाता है।
हालाँकि, आपको force
विकल्प के साथ git push
कमांड का उपयोग करते समय सावधान रहने की आवश्यकता है क्योंकि यदि आप सतर्क नहीं हैं तो आप प्रगति खो सकते हैं।
पढ़ने के लिए आपका शुक्रिया!