यह अक्सर मेरे काम प्रवाह में होता है: मैं एक अलग शाखा में एक सुविधा पर काम कर रहा हूं, और ऐसा करने के दौरान मैं छोटी चीजों में आऊंगा जिन्हें फिक्सिंग की आवश्यकता है, लेकिन उदाहरण के लिए ढांचे या साइट लेआउट में ऊपर से हैं।Commit किसी अन्य शाखा में परिवर्तन का चयन करें और फिर वर्तमान शाखा पर काम फिर से शुरू करें?
मैं मुख्य पर बदलने में शाखा को विकसित करने और वहाँ का चयन करें फाइलों से परिवर्तन हो, तो एक सुविधा शाखा के लिए वापस जाओ, और इसलिए rebase है कि मैं से बाहर असंबंधित तोड़ मरोड़/bugfixes के साथ वहां जारी रख सकते हैं चाहता हूँ रास्ता।
मैं ऐसा करने के लिए git stash
और git stash pop
का उपयोग कर रहा हूं, लेकिन मुझे संशोधित फ़ाइलों के समूह से बहुत सारे संघर्ष मिल रहे हैं लेकिन किसी भी तरह से मूल शाखा में प्रतिबद्ध होने की आवश्यकता नहीं है।
क्या विवादों से बचने या किसी भी तरह से वर्तमान स्थिति को बचाने के लिए कोई और तरीका है, और केवल काम करने के लिए किसी अन्य शाखा में काम करने वाले पेड़ परिवर्तनों को चुनने का कोई दूसरा तरीका है? (गिट-स्टैश-चेरी-पिक की तरह ;-))
मैंने एक साधारण परीक्षण चलाया और यह वास्तव में समस्या को हल करता है। मैं उलझन में था कि रीबेज करते समय गिट चेरी द्वारा उठाए गए प्रतिबद्ध को कैसे पहचान लेगा। यह फीचर शाखा पर इसे HEAD से सही ढंग से हटा देता है, और इसे सुविधा के नीचे ले जाता है। यही वही है जो मुझे चाहिए था। चूंकि प्रतिबद्धता sha बदल गई है, मैं केवल अनुमान लगा सकता हूं कि मास्टर को लागू करने के बाद (और इस प्रकार चेरी द्वारा उठाया गया), गिट देखता है कि फीचर शाखा पर हेड प्रतिबद्धता पहले ही हो चुकी है, और इसे दूसरी बार लागू नहीं करती है? –
धन्यवाद कहने के लिए बस एक अपडेट, यह बहुत अच्छा काम करता है। चेरी-पिक के साथ एक बार मेरा संघर्ष हुआ। चूंकि मैंने इसे संघर्ष को हल करने के लिए संपादित किया है, इसलिए गिट ने "फीचर" शाखा के सिर के संबंधित प्रतिबद्धता को रिबेस के बाद हटा दिया नहीं है।लेकिन मैं इसे आसानी से 'गिट रीसेट - हार्ड हेड ~ 1' के साथ हटा सकता हूं। यह मुख्य शाखा में सुविधा का एक रैखिक इतिहास रखता है, और फीचर शाखा; उत्तरार्द्ध हमेशा के लिए एक तेजी से आगे के रूप में। महान। –
उत्कृष्ट। बस मेरे जैसे उन लोगों के लिए जिन्हें चरण 4 में रीबेज भाग देखना था: 'गिट रीबेस मास्टर' –