2010-03-05 15 views
6

पृष्ठभूमि: ट्रेवर पूरी तरह से गिट की कोशिश करने के उद्देश्य से एक परीक्षण परियोजना पर काम कर रहा था।गिट रीसेट करने के बाद बेनामी शाखा

:git reset --hard 6aa32cfecf4 
    HEAD is now at 6aa32cf auto commit Sun Feb 28 16:00:10 -0800 2010 

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

प्रश्न 1: ट्रेवर इस "अज्ञात शाखा" से कैसे छुटकारा पा सकता है ... और ट्रेवर वास्तव में क्या देख रहा है? ट्रेवर को समझने में मदद करने के लिए कुछ पॉइंटर्स क्या हैं जब ट्रेवर ने हार्ड रीसेट किया था तो ट्रेवर ट्रेवर की अपेक्षाओं को बेहतर ढंग से सेट कर सकता है।

प्रश्न 2: मान लिया जाये कि ट्रेवर अन्य लोगों के साथ परियोजना साझा किया था। हार्ड रीसेट किए बिना वही (या समान चीज़) करने का विकल्प क्या होगा?

+1

में इसे मर्ज या रीबेस कर सकते हैं एक स्वाइप क्या है? –

+0

@AndrewWillems ट्रेवर – dreftymac

उत्तर

4

The illustrated guide to recovering lost commits with Git में उल्लेख किया है, आप ठीक हो सकता है "खो" करता है ("अब एक शाखा या एक टैग द्वारा संदर्भित" के रूप में)।
यही कारण है कि वे अभी भी गिट में दिखाई देते हैं।
उदाहरण के लिए, एक:

$ git fsck −−lost-found 

भी उन्हें प्रदर्शित होगी।

इस को साफ करने के

$ git gc --aggressive 
$ git prune 

भी देखें git gc: cleaning up after yourself (आप कुछ भी नहीं किसी अन्य हटाने संचालन से वापस पाने के लिए हो रही कल्पना करते हुए)।


कि शाखा साझा किया गया था, एक संभावित विकल्प के लिए एक नया बनाने के लिए n पिछले अभियानों को रद्द प्रतिबद्ध में एक git revert हो गया होता।

3

आप प्रतिबद्धता से कुछ नई शाखा बना सकते हैं।

अपने पिछले आपकी अनाम शाखा में प्रतिबद्ध हैं 123e43 आप क्या कर सकते हैं:

git checkout -b my_branch 123e43e

अब अपनी शाखा गैर अनाम है। आप अपनी मास्टर शाखा

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