2011-01-30 16 views
200

में वापस गिट एक्स का उपयोग करके कैसे प्राप्त करूं और किसी चीज़ पर रॉयली फेंकना चाहिए। ऐसा लगता है कि कुछ दिन पहले मैंने detached HEAD नामक एक शाखा बनाई और इसे करने के लिए किया गया है। मेरी सामान्य प्रक्रिया master पर प्रतिबद्ध है और फिर इसे origin पर दबाएं। लेकिन मैं detached HEAD धक्का नहीं दे सकता।gitx मैं अपने 'अलग-अलग सिर' को मास्टर

मेरा अगला स्टॉप मुझे खराब कर देता है। मैंने git checkout master चुना - और मेरी detached HEAD शाखा गायब हो गई। मेरे प्रोजेक्ट पर वापस जाकर पिछले कुछ दिनों में मेरे सभी बदलावों को मिटा दिया गया है।

क्या वैसे भी मैं उन परिवर्तनों को वापस प्राप्त कर सकता हूं?

+2

खोए गए कामों को खोजने के लिए गिट रीफ्लॉग का उपयोग करें। –

+1

देखें http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html – rgardler

उत्तर

388

तो checkout master आखिरी बात तुमने किया था, तो reflog प्रविष्टि [email protected]{1} अपने प्रतिबद्ध शामिल होंगे (अन्यथा git reflog या git log -p उन्हें खोजने के लिए उपयोग करें)। उन्हें मास्टर में तेजी से आगे बढ़ाने के लिए git merge [email protected]{1} का उपयोग करें।

संपादित करें:

इस पर

टिप्पणी में बताया गया है, Git Ready has a great article

git reflog और git reflog --all आपको गलत जगहों की प्रतिबद्धता प्रदान करेगा।

Git Ready: Reflog, Your Safety Net

स्रोत: http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html

+8

पावर गिट उपयोगकर्ता नहीं होने पर यह सहायक था, लेकिन पर्याप्त विवरण नहीं था। हालांकि मुझे नेट की खोज करने के लिए प्रेरित किया - धन्यवाद। मुझे http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html बहुत उपयोगी – rgardler

+4

पावरहेल (विंडोज) में HEAD @ {1} चलाने वाले किसी भी व्यक्ति के लिए, आपको एक गैर त्रुटि की तरह वर्णनात्मक त्रुटि: अज्ञात स्विच 'ई'। ऐसा इसलिए है क्योंकि पावरहेल में घुंघराले ब्रेसिज़ का विशेष अर्थ है। आप इसके बजाय इसे टाइप करना चाहेंगे: 'HEAD @ {1}'। –

+1

यदि आप मछली के खोल का उपयोग कर रहे हैं, तो आपको यह त्रुटि मिल जाएगी 'मर्ज: HEAD @ 1 - कुछ नहीं जिसे हम मर्ज कर सकते हैं', मछली घुंघराले ब्रेसिज़ को हटा देती है, इसलिए पहले बैश पर स्विच करें, फिर यह काम करेगा। – briankip

60

अपने अलग हेड मास्टर की एक तेजी से आगे है और तुम सिर्फ प्रतिबद्ध नदी के ऊपर चाहते हैं, आप

git push origin HEAD:master 

सीधे पुश करने के लिए कर सकते हैं या

हैं
git checkout master && git merge [ref of HEAD] 

इसे वापस विलय कर देगा अपने स्थानीय मास्टर के लिए।

+1

यह मेरे लिए काम करता था और @ जोश ली का दृष्टिकोण नहीं था। तो मुझे खुशी है कि यह काम किया! – vy32

+1

जो अलग-अलग सिर पर मूल (मूल/मास्टर) पर काम करता है, लेकिन आपको स्थानीय रूप से अलग राज्य में छोड़ देता है। क्या मास्टर गिट पर वापस आने का सबसे अच्छा तरीका 'गिट चेकआउट मूल मास्टर' है? पहले मास्टर में विलय करना बेहतर लगेगा, फिर मूल पर वापस धक्का दें। – StuWeldon

+0

मुझे मेरा एसवीएन चाहिए :-) – chrisl08

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