दुर्भाग्य से यह मेरे लिए काफी नियमित रूप से और साथ ही होता है और मैं का उपयोग git stash
करता है, तो मैं पहले अपनी गलती का एहसास हुआ git commit
और उपयोगgit cherry-pick
अन्यथा, दोनों आदेशों अन्य उत्तर में बहुत अच्छी तरह से समझाया गया है
मैं इसके लिए एक स्पष्टीकरण जोड़ना चाहता हूं git checkout targetBranch
: यह कमांड केवल आपकी वर्किंग डायरेक्टरी और स्टेज्ड स्नैपशॉट को सुरक्षित रखेगी यदि टारगेटब्रांच का आपकी वर्तमान ब्रांच के समान इतिहास हो।
यदि आपने पहले से ही अपने परिवर्तन नहीं किए हैं, तो नई शाखा में जाने के लिए बस गिट चेकआउट का उपयोग करें और फिर उन्हें सामान्य रूप से करें
@ एम्बर का कथन गलत नहीं है, जब आप एक नए ब्रांच में जाते हैं git checkout -b newBranch
, तो एक नया पॉइंटर बनाया जाता है और यह आपकी वर्तमान शाखा की तरह ही सटीक होने की ओर इशारा करता है।
वास्तव में, यदि आपके पास एक अन्य शाखा है जो आपकी वर्तमान शाखा के साथ इतिहास साझा करती है (दोनों एक ही वचन पर) तो आप "अपने परिवर्तनों को आगे बढ़ा सकते हैं"git checkout targetBranch
हालांकि, आमतौर पर अलग-अलग शाखाओं का मतलब अलग-अलग इतिहास होता है, और Git आपको इन शाखाओं के बीच एक गंदे कार्य निर्देशिका या स्टेजिंग क्षेत्र के साथ स्विच करने की अनुमति नहीं देगा। जिस स्थिति में आप या तो कर सकते हैं git checkout -f targetBranch
(क्लीन एंड थ्रो बदलाव) या git stage
+ git checkout targetBranch
(क्लीन एंड सेव चेंज), बस रनिंग git checkout targetBranch
एक त्रुटि देगा:
त्रुटि: निम्नलिखित फ़ाइलों के लिए आपके स्थानीय परिवर्तन चेकआउट द्वारा अधिलेखित हो जाएंगे: ... कृपया अपनी परिवर्तन करें या शाखाओं को स्विच करने से पहले उन्हें रोकें। निरस्त