अपने कमिट ग्राफ (gitk या इसी तरह के प्रोग्राम के साथ) को देखें। आप पुल अनुरोध से कमिट्स देखेंगे, और आप अपने स्वयं के कमिट्स देखेंगे, और मर्ज कमिट (यदि यह एक फास्ट-फॉरवर्ड मर्ज नहीं था)। आपको केवल मर्ज से पहले अपने खुद के आखिरी का पता लगाना होगा, और इस कमेटी को शाखा को रीसेट करना होगा।
(यदि आपके पास शाखा का स्थान है, तो मर्ज से पहले कमिटमेंट ढूंढना और भी आसान होना चाहिए।)
(टिप्पणियों में अधिक जानकारी के बाद संपादित करें :)
ठीक है, ग्राफ को देखने देता है:
मैं मानती हूं कि अंतिम (सबसे सही) कमिटमेंट आपके गलत मर्ज को पुल रिक्वेस्ट के द्वारा किया गया था , जो यहां दिखाई देने वाली नीली रेखा को मिला देता है। आपकी अंतिम अच्छी प्रतिबद्धता काली रेखा से पहले होगी, यहाँ लाल रंग में चिह्नित किया गया है:
इस कमिट पर रीसेट करें, और आपको ठीक होना चाहिए।
इसका मतलब है, आपकी स्थानीय कामकाजी कॉपी में ऐसा होता है (यह सुनिश्चित करने के बाद कि आपके पास कोई और अधिक सामान नहीं है, उदाहरण के लिए git stash द्वारा):
git checkout master
git reset --hard 7a62674ba3df0853c63539175197a16122a739ef
gitk
अब इस बात की पुष्टि करें कि आप वास्तव में मेरे द्वारा चिन्हित किए गए वचन पर हैं, और आपको इसके पूर्वजों में से कोई भी सामान दिखाई नहीं देगा।
git push -f origin master
(यदि आपके गितुब रिमोट का नाम दिया गया है origin
- तो नाम बदल दें)।
अब सब कुछ जीथब पर सही दिखना चाहिए। कमिट्स अभी भी आपके रिपॉजिटरी में होंगे, लेकिन किसी भी ब्रांच द्वारा उपलब्ध नहीं हैं, इसलिए वहां कोई नुकसान नहीं करना चाहिए। (और वे अभी भी रोजरपलाडिन के भंडार पर होंगे, निश्चित रूप से।)
(एक ही काम करने का एक Github विशिष्ट वेब-ही तरीका हो सकता है, लेकिन मैं Github और इसके पुल प्रबंधन प्रणाली से बहुत परिचित नहीं हूं।)
ध्यान दें कि यदि किसी और ने पहले से ही आपके स्वामी को गलत प्रतिबद्ध के साथ खींच लिया है, तो उनके पास उसी तरह की समस्या होगी जैसी आपके पास वर्तमान में है, और वास्तव में वापस योगदान नहीं कर सकता है। अपने नए मास्टर संस्करण को रीसेट करने से पहले।
यदि यह संभावना है कि ऐसा हुआ है, या आप किसी भी समस्या से बचना चाहते हैं, तो git revert
आदेश का उपयोग करें git reset
, एक नई प्रतिबद्धता के साथ परिवर्तनों को वापस करने के लिए, एक पुराने को वापस सेट करने के बजाय। (कुछ लोग सोचते हैं कि आपको प्रकाशित शाखाओं के साथ कभी भी रीसेट नहीं करना चाहिए।) इस प्रश्न के अन्य उत्तर देखें कि यह कैसे करना है।
भविष्य के लिए:
यदि आप रोजरपलाडिन की शाखा के कुछ कमिटमेंट चाहते हैं, तो cherry-pick
इसके बजाय का उपयोग करने पर विचार करें merge
। या उन्हें एक अलग शाखा में स्थानांतरित करने के लिए रोजरपलाडिन से संवाद करें और एक नया पुल अनुरोध भेजें।