2011-07-01 18 views
7

मैंने अपने सभी कामों को मिटा दिया और यह बताने की इच्छा नहीं होगी कि कैसे।
केवल एक चीज जो मैंने छोड़ी है वह गिट ऑब्जेक्ट्स हैं। और कुछ भी मैं कुछ नुकसान पैक छवि छवियों को पुनर्प्राप्त करना चाहता हूं। ऑब्जेक्ट फ़ाइलों के आकार से मैं बता सकता हूं कि वे कौन हैं। क्या उन्हें वापस उपयोग करने योग्य फ़ाइलों में बदलने का कोई तरीका है?गिट ऑब्जेक्ट्स से फ़ाइलों को पुनर्प्राप्त करना

+1

केवल गिट ऑब्जेक्ट्स? कोई refs/शाखाओं/टैग? पहली बात: बैकअप – knittl

उत्तर

5

पहली बात: बैकअप बनाएं! फिर उस बैकअप की एक प्रति पर काम करें।

यदि गिट ऑब्जेक्ट्स अभी भी सही निर्देशिका में हैं (.git/objects/xx/xxx…) तो आप उन्हें खोजने के लिए git fsck --full का उपयोग कर सकते हैं - यह शायद आपके ऑब्जेक्ट में प्रत्येक ऑब्जेक्ट को सूचीबद्ध करेगा। अब commit और tag लेबल वाले लोगों की तलाश करें, वे वही हैं जिन्हें आप पुनर्प्राप्त करना चाहते हैं।

मैं शायद एक स्क्रिप्ट का उपयोग करता हूं जो प्रत्येक प्रतिबद्ध ऑब्जेक्ट के लिए एक शाखा बनाता है (उदाहरण के लिए केवल संख्या rescue-1, rescue-2 इत्यादि)। बाद में अपनी सभी शाखाओं को देखने और शीर्ष (सबसे हालिया) चुनने के लिए gitk --all का उपयोग करें। rescued-master पर एक नई शाखा बनाएं।

अपनी नई मास्टर शाखा चेकआउट करें और git branch --no-merge चलाएं। आपको ब्रांडेड ऑफ़ कॉमिट्स की एक सूची मिलनी चाहिए, मास्टर में निहित नहीं है। आप शायद उन्हें एक नया शाखा नाम भी देना चाहते हैं।

आपके पूरा होने के बाद, सभी क्रमांकित rescue- शाखाएं हटाएं।

उम्मीद है कि एक प्रारंभिक बिंदु मदद करता है और देता है।

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