2010-04-22 13 views
51

बकवास शुरू किया! लगभग एक हफ्ते पहले, मैं अपने भंडार को साफ करने की कोशिश करते समय कुछ काम करता था, और स्पष्ट रूप से मैंने इसे वास्तव में खत्म नहीं किया था। आज, एक हफ्ते और कई बाद में काम करते हैं, मैं आज से कुछ कामों को पुन: व्यवस्थित करने के लिए रिबेस करने गया, और उसने मुझे बताया कि मैं पहले से ही एक रिबेस के बीच में था।पुरानी पुरानी गिट rebase और खोया काम करता है क्योंकि rebase

यह मेरे रेपो को प्रतिलिपि बनाने के लिए एक क्यू होना चाहिए था। लेकिन मैंने नहीं किया ... इसके बजाय मैं git rebase --abort चला गया जो उस समय सही था। अच्छा, यह सही नहीं था। इसने एक हफ्ते पहले रिबेस को निरस्त कर दिया और मास्टर के हेड को पुराने में रीसेट कर दिया। डमी!

मुझे कई अन्य शाखाएं मिली हैं जो काफी हाल ही में हैं, और मैंने कई बार रिमोट पर धक्का दिया है, लेकिन हालिया परिवर्तन हमेशा के लिए चले जाते हैं। मेरे परिवर्तनों को पुनर्प्राप्त करने का कोई तरीका है या नहीं, यह जानने के लिए मेरे पास गिट-फू का उचित स्तर नहीं है।

क्या मैं खराब हूं?

संपादित करें - वाह! धन्यवाद दोस्तों! git reflog कमाल है! मैं पूरी तरह से पुनर्प्राप्त हूँ ... सबक सीखा। तचलवाक के जवाब को चिह्नित करने वाले पहले व्यक्ति होने के लिए स्वीकार किया गया।

उत्तर

78

git reflog देखें। आप लगभग सभी मामलों में संदर्भ के रूप में उन प्रतिबद्ध हैंश का उपयोग करके समय पर वापस चल सकते हैं।

मैं भी शारीरिक रूप से Git रेपो निर्देशिका कहीं और देखने के लिए क्या काम करेंगे प्रारंभिक परीक्षण करने के लिए एक जगह के रूप में, इस तरह आप जो कुछ भी आप एक राज्य में ट्रैक न किए गए फ़ाइलों बातें खोने या प्राप्त किए बिना चाहते से छेड़छाड़ न कर कॉपी चाहते हैं कि आप वापस नहीं आ सकते हैं।

+10

'गिट रीफ्लॉग' ने मुझे काम के घंटों को खोने से बचाया। धन्यवाद! –

+4

मैं आपको इस जवाब के लिए प्यार करता हूँ। अगर मैं दस गुना बढ़ा सकता तो मैं चाहता था। – RobW

+0

ने भी मेरा बचाया। आपका बहुत बहुत धन्यवाद! – liuyu

58

आपको git reflog के साथ अपने सबसे हालिया कामों (जो रीबेस --बोर्ट के बाद गायब हो गया) के SHA1 प्राप्त करने में सक्षम होना चाहिए।

फिर आप सक्षम उन SHA1

# Suppose the old commit was [email protected]{2} in the ref log 
git reset --hard [email protected]{2} 

के लिए अपने वर्तमान शाखा पुनर्स्थापित करने के लिए किया जाएगा यह "Undoing a git reset --hard HEAD~1" की तरह एक सा है।

वसूली के अन्य उदाहरणों के लिए "illustrated guide to recovering lost commits with Git" भी देखें।

संबंधित मुद्दे