मुझे पता है कि स्टैकऑवरफ्लो राय आधारित उत्तरों के लिए जगह नहीं है, लेकिन मैं वास्तव में इस बारे में अच्छी राय रखता हूं कि कब किस तरह के बदलाव के साथ बदलाव करना है।
आप प्रायोगिक परिवर्तन नहीं करना चाहते हैं
जब आप अपने कार्यक्षेत्र / कार्यशील पेड़ में परिवर्तन करते हैं, तो यदि आपको मर्ज, पुश, लाने या खींचने जैसे किसी भी शाखा आधारित संचालन करने की आवश्यकता है, तो आपको एक स्वच्छ प्रतिबद्ध बिंदु पर होना चाहिए। इसलिए यदि आपके पास कार्यक्षेत्र में परिवर्तन हैं तो आपको उन्हें करने की आवश्यकता है। लेकिन क्या होगा अगर आप उन्हें प्रतिबद्ध नहीं करना चाहते हैं? यदि वे प्रायोगिक हैं तो क्या होगा? कुछ आप अपने प्रतिबद्ध इतिहास का हिस्सा नहीं चाहते हैं? कुछ आप दूसरों को नहीं देखना चाहते जब आप GitHub को धक्का देते हैं?
आप हार्ड रीसेट के साथ स्थानीय परिवर्तन नहीं खोना चाहते हैं
उस स्थिति में, आप एक हार्ड रीसेट कर सकते हैं। लेकिन अगर आप एक हार्ड रीसेट करते हैं तो आप अपने सभी स्थानीय कामकाजी पेड़ खो देंगे परिवर्तनों क्योंकि अंतिम प्रतिबद्ध होने के समय सब कुछ ओवरराइट हो जाता है और आप अपने सभी परिवर्तनों को खो देंगे।
तो, 'जब आपको थप्पड़ मारना चाहिए' के उत्तर के लिए, इसका उत्तर यह है कि आपको एक समतुल्य काम करने वाले पेड़ / इंडेक्स / कमिट के साथ क्लीन कमिट पॉइंट पर वापस जाने की आवश्यकता है, लेकिन आप अपने स्थानीय परिवर्तनों को खोना नहीं चाहते हैं। प्रक्रिया। बस अपने परिवर्तनों को एक कड़ी में बदल दें और आप अच्छे हों।
और एक बार जब आप अपना स्टैश कर लेते हैं और फिर मर्ज हो जाते हैं या खिंच जाते हैं या धकेल दिए जाते हैं, तो आप बस पॉप को स्टेश कर सकते हैं या लागू कर सकते हैं और आप वहीं से वापस आ सकते हैं, जहाँ से आपने शुरुआत की थी।
Git stash और GitHub
GitHub लगातार नई सुविधाओं को जोड़ रहा है, लेकिन अभी के रूप में, वहाँ अब एक छिपाने की जगह बचाने के लिए रास्ता है। फिर, एक स्टैश का विचार यह है कि यह स्थानीय और निजी है। आपके कार्य केंद्र तक भौतिक पहुंच के बिना कोई भी आपके संघर्ष में नहीं जा सकता। जिस तरह से git reflog git लॉग सार्वजनिक है, उसी तरह निजी है। शायद यह निजी नहीं होता अगर इसे गिटहब तक धकेल दिया जाता।
एक चाल हो सकती है कि आप अपने कार्यक्षेत्र का एक बड़ा भाग करें, अपने git रिपॉजिटरी में कमिट को चेक करें, फिर कमिट करें और फिर पुश करें। फिर आप घर से एक पुल कर सकते हैं, अंतर प्राप्त कर सकते हैं और फिर इसे खोल सकते हैं। लेकिन उन परिणामों को प्राप्त करने के लिए यह एक बहुत ही गन्दा तरीका है।
git diff > git-dif-file.diff