2011-03-21 13 views
21

एक फीचर शाखा को पूरा करने के बाद, git rebase -i के दौरान मैंने गलती से मेरे सभी कामों को हटा दिया। मुझे पूरी तरह से यकीन नहीं है लेकिन मुझे संदेह है कि मेरे कामों को स्क्वैश करने के बजाय, मैंने पूरी प्रविष्टि को एक प्रतिबद्ध संदेश के साथ बदल दिया।एक इंटरैक्टिव गिट रिबेस को वापस लेना

http://shafiulazam.com/gitbook/4_interactive_rebasing.html का कहना है:

पिछले उपयोगी बात यह है कि इंटरैक्टिव रिबेस कर सकते हैं ड्रॉप है आप के लिए करता है। यदि 'स्क्वैश' या 'संपादित करें' को लाइन के लिए 'संपादित करें' चुनने के बजाय, आप बस लाइन को हटा दें, इतिहास से प्रतिबद्धता को हटा देगा।

मेरा प्रश्न है: क्या इसे वापस करने/पूर्ववत करने का कोई तरीका है?

उत्तर

48

तुम सिर्फ रिबेस किया है, तो आप mentioned here के रूप में की कोशिश कर सकते हैं:

git reset --hard ORIG_HEAD 

रूप Jakub Narębskidetails:

ORIG_HEADHEAD के पहले वाली स्थिति, आदेश संभवतः खतरनाक व्यवहार है कि द्वारा निर्धारित है , उन्हें वापस करने के लिए आसान होना है। [email protected]{1} मोटे तौर पर ORIG_HEAD के बराबर है (ORIG_HEAD खतरनाक ऑपरेशन से पहले HEAD का अंतिम मान है [email protected]{1} हमेशा HEAD का अंतिम मान है,):
यह कम उपयोगी अब कि Git reflog गया है।

आप कुछ कार्यों रिबेस के बाद से, reflog can still help मार डाला है।

+1

धन्यवाद वॉनसी - 'गिट रीफ्लॉग' कुंजी थी। – Zubin

10

आप "गिट रीफ्लॉग" कर सकते हैं और अपना पुराना सिर वापस ले सकते हैं।

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