भूल:
मैं git rebase -i --root
अपनी शाखा को संपादित कर रहा हूं, यह सोचकर कि मैं मास्टर से अलग होने वाली पहली प्रतिबद्धताओं को पुन: प्राप्त कर सकता हूं ( विंडोज डिफ़ॉल्ट दृश्य के लिए गीथहब मास्टर की तुलना है, यह संपूर्णता छिपाता है)।
मैंने एक सिलिकॉन वैली दाढ़ी बढ़ाई, जबकि 900+ कमिट्स ने खुद को सबलाइम में लोड किया। बिना किसी परिवर्तन के साथ, मैंने अपनी बैटरी चार्ज की और फिर दाढ़ी बनाने के लिए आगे बढ़ा, जैसा कि सभी 900+ व्यक्ति अब तक किए गए अपने समय को फिर से रीसेट करते हुए गैर-कानूनी रूप से विद्रोह करते हैं।
गिट को हराने और मूल समय को संरक्षित करने के लिए दृढ़ संकल्प, मैंने इस स्थानीय रिपॉजिटरी को हटा दिया और रिमोट से फिर से क्लोन किया।
अब मैंने इसे हटाने के लिए कामना करने वाले स्वामी को एक सबसे हाल ही में अनावश्यक रूप से पुन: जोड़ा था, इसलिए आगे बढ़ गया।
विकल्पों को छोड़ना:
मैं नहीं चाहता था git revert
- यह एक अतिरिक्त प्रतिबद्धता पैदा करेगा, जिससे ऊपरी हाथ मिल जाएगा।
git reset --hard HEAD
कुछ भी नहीं किया, reflog
आखिरी की जाँच के बाद , केवल और केवल HEAD
क्लोन था - गिट जीत।
सबसे हाल ही में SHA पाने के लिए, मैंने github.com पर रिमोट रिपॉजिटरी की जाँच की - मामूली जीत।
सोचने के बाद git reset --hard <SHA>
काम किया था, मैंने एक और शाखा को मास्टर और 1 ... 2 ... पूफ को अपडेट किया! प्रतिबद्ध वापस आ गया था - जीत जीत।
मास्टर के लिए वापस जाँच करना, कोशिश करने का समय git rebase -i <SHA>
, फिर लाइन को हटा दें ... कोई फायदा नहीं हुआ, दुख की बात है। " यदि आप यहाँ एक लाइन हटाते हैं तो कम से कम होगा "। आह ... 2.8.3 के रिलीज नोटों में n00b को ट्रोल करने वाले नए फीचर पर काम किया ।
समाधान:
git rebase -i <SHA>
तब d, drop = remove commit
।
सत्यापित करने के लिए, मैंने एक और शाखा, और वॉइला की जाँच की - मास्टर से लाने / खींचने के लिए कोई छिपाना नहीं।
https://twitter.com/holman/status/706006896273063936
आपका अच्छा दिन हो।
cherry-pick
delete