मैं बस अपना develop
शाखा में एकगिट मर्ज स्क्वैश को पूर्ववत कैसे करें?
git merge --squash feature-branch
किया है।
समस्या यह है कि उपरोक्त आदेश ने नई प्रतिबद्धता के बिना सिर को अद्यतन किया। मेरा इरादा develop
के सिर पर लागू करने के लिए एक एकल प्रतिबद्धता बनाना था।
तो संक्षेप में, विलय से पहले और बाद में develop
शाखा के लिए लॉग बिल्कुल वही है।
वहाँ वापस develop
क्या यह git merge
पहले था पर वापस लौटने के लिए एक रास्ता है?
धन्यवाद।
समाधान
दान डी से टिप्पणी और मैं नीचे स्वीकार किए जाते हैं जवाब के आधार पर मेरी समस्या को हल करने में सक्षम था। यदि आप एक ही नाव में हैं तो मैंने नीचे क्या किया है:
1 - मैं git reflog
चला गया और यह मेरे develop
शाखा के साथ किए गए सभी कामों और चेकआउट सूचीबद्ध करता है।
2 - सुझाए गए git reset [email protected]{1}
करने के बजाय, मुझे वह नंबर मिला जब मैंने इसे विकसित करने के लिए आखिरी प्रतिबद्धता की थी। मेरे मामले में यह [email protected]{188}
था। तो मैंने git reset [email protected]{188}
टाइप किया।
3 - मैंने git log
चलाया और इसमें एक साफ़ लॉग दिखाया गया था जो मैंने गलत विलय करने से पहले ही किया था।
4 - मैंने अपने फीचर डेवलपमेंट के दौरान बनाई गई सभी नई फाइलों को चरणबद्ध करने के लिए git add -A .
चलाया।
5 - मैं git commit -m "install feature-x"
6 दौड़ा - एक परिणाम के रूप में अब मैं सही फाइलों के साथ शाखा develop
है और लॉग साफ है - दिखा केवल एक ही सभी परिवर्तनों को मैं feature-x
के विकास के दौरान किया था के लिए प्रतिबद्ध हैं।
मुझे अभी भी यह पता लगाना होगा कि मेरा मूल git merge --squash feature-branch
इरादा के रूप में क्यों काम नहीं करता था।
समाधान 2
मार्क Longair का जवाब मेरी समस्या के लिए एक निश्चित समाधान है। मैंने अभी इसका परीक्षण किया है और यह काम करता है। प्रक्रिया अब मैं उपयोग कर रहा हूँ एक feature-branch
के भीतर सभी आंतरिक प्रतिबद्ध छुटकारा पाने के लिए और शामिल सिर्फ एक develop
शाखा के लिए प्रतिबद्ध नीचे देखें:
git checkout develop
git merge --squash feature-branch
git commit -m "install of feature-branch"
ऊपर अनुक्रम एक आकर्षण की तरह काम करता है।
'गीट रीफ्लॉग' का उपयोग करें। –