Rebasing
रीबेसिंग आपको प्रतिबद्ध इतिहास को संशोधित करके एक शाखा से दूसरी शाखा में परिवर्तन शामिल करने की अनुमति देता है। यह स्रोत शाखा से लक्ष्य शाखा पर कमिट को दोबारा चलाता है। इसके परिणामस्वरूप एक स्वच्छ और अधिक रैखिक प्रतिबद्ध इतिहास प्राप्त होता है।
उदाहरण: मान लीजिए कि आपके पास एक फीचर शाखा है और आप शाखा feature-branch
से नवीनतम परिवर्तनों को शामिल करना चाहते हैं । main
आप निम्न आदेश का उपयोग कर सकते हैं:
git checkout feature-branch
git rebase main
यह शाखा से कमिट main
को लागू करेगा feature-branch
। किसी भी टकराव को रीबेस प्रक्रिया के दौरान हल करने की आवश्यकता होगी।
Stashing
स्टैशिंग आपको अपने वर्तमान परिवर्तनों को सहेजने की अनुमति देता है, जो प्रतिबद्ध होने के लिए तैयार नहीं हैं, और अस्थायी रूप से एक साफ कार्यशील निर्देशिका में वापस लौट आते हैं। यह तब उपयोगी होता है जब आपको किसी भिन्न शाखा में स्विच करने या उन परिवर्तनों को किए बिना किसी भिन्न सुविधा पर काम करने की आवश्यकता होती है जिन पर आप वर्तमान में काम कर रहे हैं।
उदाहरण: मान लीजिए कि आप एक फीचर शाखा पर काम कर रहे हैं और आपने कुछ बदलाव किए हैं, लेकिन आपको दूसरी शाखा में स्विच करने की जरूरत है। आप अपने परिवर्तनों को छिपाने के लिए निम्नलिखित आदेशों का उपयोग कर सकते हैं:
git stash
नई शाखा में स्विच करने के बाद, आप निम्न का उपयोग करके संग्रहीत परिवर्तन लागू कर सकते हैं:
git stash apply
Git Hooks
Git Hooks
ऐसी स्क्रिप्ट हैं जो विशिष्ट Git ईवेंट द्वारा ट्रिगर की जाती हैं, जैसे प्री-कमिट, पोस्ट-कमिट, प्री-पुश, आदि। वे आपको कुछ क्रियाओं को स्वचालित करने या अपने वर्कफ़्लो में विशिष्ट नियमों को लागू करने की अनुमति देते हैं।
उदाहरण: मान लीजिए कि आप कमिट करने से पहले अपने कोड पर एक लिंटर चलाना चाहते हैं। आप एक प्री-कमिट हुक स्क्रिप्ट बना सकते हैं जो लिंटर को ट्रिगर करती है और यदि कोई लिंटिंग त्रुटियां हैं तो कमिट को रोकती है।
Git Submodule
Git Submodule
आपको अपने मुख्य भंडार के भीतर एक उपनिर्देशिका के रूप में एक और Git भंडार शामिल करने की अनुमति देता है। यह तब उपयोगी होता है जब आपके पास कोई प्रोजेक्ट होता है जो बाहरी पुस्तकालयों या घटकों पर निर्भर करता है।
उदाहरण: आपके पास एक प्रोजेक्ट है जिसके लिए एक विशिष्ट लाइब्रेरी की आवश्यकता है। लाइब्रेरी के कोड को अपनी रिपॉजिटरी में डुप्लिकेट करने के बजाय, आप इसे एक सबमॉड्यूल के रूप में जोड़ सकते हैं। इस तरह, आप लाइब्रेरी कोड को अलग रख सकते हैं और जरूरत पड़ने पर इसे आसानी से अपडेट कर सकते हैं।
Git Revert and Git Reset
Git Revert
एक नई कमिट बनाकर पिछली कमिट को पूर्ववत करता है जो मूल कमिट में किए गए परिवर्तनों को पूर्ववत करता है। Git Reset
दूसरी ओर, आपको ब्रांच पॉइंटर को एक अलग कमिट में ले जाने की अनुमति देता है, जो कमिट इतिहास से कमिट को प्रभावी ढंग से हटा देता है।
उदाहरण: यदि आप अंतिम कमिट को पूर्ववत करना चाहते हैं, तो आप git revert HEAD
एक नई कमिट बनाने के लिए इसका उपयोग कर सकते हैं जो अंतिम कमिट में किए गए परिवर्तनों को पूर्ववत कर देती है। यदि आप अंतिम कमिट को पूरी तरह से त्यागना चाहते हैं, तो आप git reset HEAD~1
ब्रांच पॉइंटर को एक कमिट से पीछे ले जाने के लिए इसका उपयोग कर सकते हैं।
Git में ये उन्नत अवधारणाएँ आपके रिपॉजिटरी को प्रभावी ढंग से प्रबंधित करने के लिए शक्तिशाली क्षमताएँ प्रदान करती हैं। यह समझना कि उनका उपयोग कैसे करना है और उन्हें कब लागू करना है, इससे आपके Git वर्कफ़्लो और प्रोजेक्ट प्रबंधन में काफी वृद्धि होगी।