Git Rebase क्या है?
Git rebase एक शक्तिशाली कमांड है जो आपको कमिट्स की एक श्रृंखला को ले जाने, संयोजित करने, या संशोधित करने की अनुमति देती है। यह आपके कमिट इतिहास को साफ और रैखिक रखने के लिए एक आवश्यक उपकरण है।
जब आप किसी फीचर ब्रांच पर काम करते हैं, तो आप कई कमिट बना सकते हैं जो आपके अंतिम कोड में आवश्यक नहीं हैं। Rebase आपको इन कमिट्स को स्क्वैश (संयोजित) करने, उनके संदेशों को संपादित करने, या उन्हें पूरी तरह से हटाने की अनुमति देता है।
इंटरैक्टिव रीबेस
इंटरैक्टिव रीबेस git rebase का सबसे शक्तिशाली रूप है। यह आपको प्रत्येक कमिट के लिए विशिष्ट कार्रवाई चुनने की अनुमति देता है।
इंटरैक्टिव रीबेस शुरू करने के लिए, निम्नलिखित कमांड का उपयोग करें:
git rebase -i HEAD~n
जहां n वह संख्या है जितने कमिट आप वापस जाना चाहते हैं। उदाहरण के लिए, git rebase -i HEAD~3 अंतिम 3 कमिट के लिए इंटरैक्टिव रीबेस खोलेगा।
यह एक टेक्स्ट एडिटर खोलेगा जिसमें कमिट्स की एक सूची होगी, प्रत्येक एक एक्शन कीवर्ड के साथ। डिफ़ॉल्ट एक्शन "pick" है, जिसका अर्थ है कमिट को वैसे ही रखें।
उपलब्ध एक्शन
- pick: कमिट को वैसे ही उपयोग करें
- reword: कमिट संदेश बदलें लेकिन परिवर्तन रखें
- edit: कमिट के लिए रुकें ताकि आप परिवर्तन संशोधित कर सकें
- squash: इस कमिट को पिछले वाले के साथ संयोजित करें
- fixup: squash जैसा लेकिन इस कमिट के संदेश को त्याग दें
- drop: कमिट को पूरी तरह से हटा दें
उदाहरण: कमिट्स स्क्वैश करना
मान लीजिए आपके पास ये कमिट हैं:
pick a1b2c3d Add login feature pick e4f5g6h Fix typo in login pick i7j8k9l Update login tests
आप टाइपो फिक्स और टेस्ट अपडेट को मुख्य कमिट के साथ संयोजित करना चाहते हैं। एडिटर में बदलें:
pick a1b2c3d Add login feature squash e4f5g6h Fix typo in login squash i7j8k9l Update login tests
सेव करें और एडिटर बंद करें। Git फिर आपको संयुक्त कमिट के लिए एक नया संदेश संपादित करने के लिए प्रेरित करेगा।
Rebase के दौरान कॉन्फ्लिक्ट हल करना
Rebase के दौरान कॉन्फ्लिक्ट हो सकते हैं यदि वही कोड अलग-अलग कमिट में संशोधित किया गया हो। Git रीबेस को रोक देगा और आपको कॉन्फ्लिक्ट हल करने की अनुमति देगा।
कॉन्फ्लिक्ट हल करने के बाद:
git add <resolved-files> git rebase --continue
यदि आप रीबेस को पूरी तरह से छोड़ना चाहते हैं:
git rebase --abort
Rebase के सुनहरे नियम
- पब्लिक ब्रांच पर कभी रीबेस न करें - केवल स्थानीय ब्रांच पर रीबेस करें जिन्हें आपने पुश नहीं किया है
- फोर्स पुश सावधानी से करें - रीबेस के बाद, आपको
git push --forceकी आवश्यकता होगी - बैकअप ब्रांच बनाएं - रीबेस से पहले, एक बैकअप ब्रांच बनाएं:
git branch backup-branch
निष्कर्ष
Git rebase एक शक्तिशाली उपकरण है जो कमिट इतिहास को साफ रखता है। इंटरैक्टिव रीबेस के साथ, आप कमिट्स को स्क्वैश कर सकते हैं, संदेशों को संपादित कर सकते हैं, और अवांछित कमिट्स को हटा सकते हैं। बस याद रखें: कभी भी पब्लिक ब्रांच पर रीबेस न करें!