Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

Git Rebase: इंटरैक्टिव रीबेस की पूरी गाइड

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 के सुनहरे नियम

  1. पब्लिक ब्रांच पर कभी रीबेस न करें - केवल स्थानीय ब्रांच पर रीबेस करें जिन्हें आपने पुश नहीं किया है
  2. फोर्स पुश सावधानी से करें - रीबेस के बाद, आपको git push --force की आवश्यकता होगी
  3. बैकअप ब्रांच बनाएं - रीबेस से पहले, एक बैकअप ब्रांच बनाएं: git branch backup-branch

निष्कर्ष

Git rebase एक शक्तिशाली उपकरण है जो कमिट इतिहास को साफ रखता है। इंटरैक्टिव रीबेस के साथ, आप कमिट्स को स्क्वैश कर सकते हैं, संदेशों को संपादित कर सकते हैं, और अवांछित कमिट्स को हटा सकते हैं। बस याद रखें: कभी भी पब्लिक ब्रांच पर रीबेस न करें!

  1. DISM  स्रोत फ़ाइलें नहीं मिलीं  त्रुटि हल करें - चरण-दर-चरण समाधान DISM "स्रोत फ़ाइलें नहीं मिलीं" त्रुटि हल करें - चरण-दर-चरण समाधान

    यदि आप DISM कमांड DISM /Online /Cleanup-Image /RestoreHealth चलाने के बाद स्रोत फ़ाइलें नहीं मिलीं त्रुटि का सामना कर रहे हैं, तो आप सही जगह पर हैं। आज हम चर्चा करेंगे कि इस समस्या को कैसे ठीक किया जाए। यह त्रुटि इंगित करती है कि DISM टूल विंडोज छवि को सुधारने के लिए स्रोत फ़ाइलों को नहीं ढूंढ पा रह

  1. Git मर्ज संघर्ष हल करें:  Index Needs Resolution  एरर के लिए चरण-दर-चरण सुधार Git मर्ज संघर्ष हल करें: 'Index Needs Resolution' एरर के लिए चरण-दर-चरण सुधार

    Git की कार्यक्षमता के साथ शाखाओं की एक अवधारणा जुड़ी हुई है। एक मास्टर ब्रांच होती है जिसके बाद कई शाखाएं उससे निकलती हैं। यदि आप एक शाखा से दूसरी शाखा पर स्विच करते हैं या यदि शाखा फाइलों से जुड़े संघर्ष हैं, तो आपको त्रुटि संदेश का सामना करना पड़ेगा, Git error: you need to resolve your current in

  1. क्या आप विंडोज 10 पर ओवरराइट की गई फ़ाइलों को पुनर्प्राप्त कर सकते हैं? सिद्ध विधियां और सुझाव क्या आप विंडोज 10 पर ओवरराइट की गई फ़ाइलों को पुनर्प्राप्त कर सकते हैं? सिद्ध विधियां और सुझाव

    आकस्मिक फ़ाइल हटाना सबसे आम हार्ड ड्राइव डेटा हानि परिदृश्यों में से एक है। लोकप्रिय धारणा के विपरीत, वाइप्ड हार्ड ड्राइव डेटा कभी भी वास्तव में डिलीट नहीं होता। इसके बजाय, उस जानकारी को हटा दिया जाता है जहां डेटा संग्रहीत किया गया था। यह लेख फ़ाइलों को ओवरराइट करने से संबंधित मुद्दों को कवर करता है