पहले, अपने विकास सर्वर पर, तो आप इस तरह Git सर्वर से प्रतिबद्ध की सूची लाने की आवश्यकता होगी:
git fetch origin master (or whatever branch you need)
फिर आप जो चाहते हैं उसे प्राप्त करने के लिए कुछ विकल्प हैं:
चेरी पहली प्रतिबद्धता चुनें - यह केवल किसी अन्य शाखा/रेपो से चुनी गई प्रतिबद्धता को 'प्लक्स' करता है और इसे आपकी वर्तमान स्थानीय शाखा में लागू करता है। यह बहुत उपयोगी हो सकता है, लेकिन सावधानी के साथ प्रयोग किया जाना चाहिए (नीचे देखें)।
git cherry-pick <hash-of-commit-you-want>
इस विशेष मामले में, आप
git cherry-pick FETCH_HEAD^ (gets commit before the HEAD of what's been fetched)
कर सकता है या उन सभी चीज़ों को खींचने और फिर प्रतिबद्ध आप चाहते हैं (इस मामले में सिर्फ सिर से पहले एक) के लिए हार्ड रीसेट करते हैं। एक हार्ड रीसेट प्रभावी ढंग से चुने गए प्रतिबद्धता के लिए आपकी स्थानीय शाखा को वापस लाता है, सभी फाइलों की स्थिति को उस समय कैसे बदलता है (इस मामले में फ़ाइल बी या तो हटा दिया जाएगा, या फिर यह कैसे वापस किया गया था प्रतिबद्ध, इस पर निर्भर करता है कि यह पहले मौजूद था या नहीं)।
git pull
git reset --hard HEAD^ (or git reset --hard <hash-of-commit-you-want>)
मैं दूसरा विकल्प पसंद करूंगा क्योंकि चेरी-पिकिंग के प्रभाव पर कुछ दस्तक हो सकती है यदि आप इससे सावधान नहीं हैं। मेरा मानना है कि यह प्रतिबद्धता के लिए एक नया हैश बनाता है, इसलिए चेरी द्वारा उठाए गए प्रतिबद्ध और मूल प्रतिबद्धता समान नहीं हैं। मुझे डर है कि मेरे पास इस पर पढ़ने के लिए अभी समय नहीं है और पुष्टि करें कि नुकसान क्या है, लेकिन मैं दृढ़ता से अनुशंसा करता हूं कि यदि आप इसका उपयोग करने का निर्णय लेते हैं तो आप स्वयं के लिए इसकी जांच कर सकते हैं।
git fetch origin master
git checkout FETCH_HEAD^
यह सब करता हासिल करेगा: -
संपादित एक अन्य समाधान (यह देखते हुए कि यह एक लाइव सर्वर है और यह स्वीकार्य फ़ाइल बी किसी भी बिंदु पर सर्वर पर प्रकट करने के लिए नहीं है कि) निम्न करने के लिए है रेपो से, और फिर जो भी लाया गया था उसके सिर से पहले प्रतिबद्धता के लिए अपने स्थानीय रेपो को जांचता है। यहां केवल एक ही नकारात्मक बात यह है कि आप फिर 'अलग सिर' राज्य में होंगे और उन्हें स्थानीय रूप से एक नई शाखा बनाना होगा, लेकिन यह एक बड़ी समस्या नहीं है।
एक नई शाखा बनाएं जिसमें पहली प्रतिबद्धता है लेकिन दूसरा नहीं, और उस शाखा को चेकआउट करें? –
@ थोंगकुआ धन्यवाद, लेकिन यह एक अच्छा तरीका नहीं है? कोई अन्य तरीका? – Dau