सिकंदर के उत्तर पर एक सरल विकल्प के साथ विस्तार करने के लिए: हाँ, अगर आपने अपने परिवर्तनों का मंचन किया है तो आप शायद अपनी फाइलें वापस ले सकते हैं। जब आप git add
चलाते हैं, तो फ़ाइलों को वास्तव में गिट के ऑब्जेक्ट डेटाबेस में जोड़ा जाता है। जैसे ही आप करते हैं पर, Git सूचकांक में फ़ाइल डाल देंगे:
% git add bar.txt
% git ls-files --stage
100644 ce013625030ba8dba906f756967f9e9ca394464a 0 bar.txt
100644 6af0abcdfc7822d5f87315af1bb3367484ee3c0c 0 foo.txt
ध्यान दें कि bar.txt के लिए प्रवेश फ़ाइल की वस्तु आईडी में शामिल है। गिट ने वास्तव में फ़ाइल को अपने ऑब्जेक्ट डेटाबेस में जोड़ा है। इस मामले में, Git एक ढीला वस्तु के रूप में भंडार में जोड़ा गया है:
% ls -Flas .git/objects/ce/013625030ba8dba906f756967f9e9ca394464a
4 -r--r--r-- 1 ethomson staff 21 14 Jun 23:58 .git/objects/ce/013625030ba8dba906f756967f9e9ca394464a
इन फ़ाइलों अंत में कचरा एकत्र किया जा (ताकि वास्तव में, स्पष्ट रूप से git gc
नहीं चला) होगा। शुक्र है, डिफ़ॉल्ट रूप से, यह महीने के मामले में नहीं होगा, दिन नहीं। जब तक ये फ़ाइलें कचरा एकत्र नहीं होती हैं, तब तक आप उन्हें पुनर्प्राप्त कर सकते हैं। नहीं प्रतिबद्ध (या इंडेक्स में)
% git recover -i
Recoverable orphaned git blobs:
61c2562a7b851b69596f0bcad1d8f54c400be977 (Thu 15 Jun 2017 12:20:22 CEST)
> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
> tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
> veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
> commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
Recover this file? [y,n,v,f,q,?]:
git-recover
वस्तु डेटाबेस में फ़ाइलों हैं कि के लिए लग रहा है:
यह करने के लिए सबसे आसान तरीका है इंटरैक्टिव मोड में download and install the git-recover
program है। आप the blog post announcing it में git-recover
के बारे में अधिक जानकारी प्राप्त कर सकते हैं।
स्रोत
2017-08-04 09:05:18
धन्यवाद! मैंने आशा छोड़ दी थी कि गिट ने कोई गैर-प्रतिबद्ध फाइलें रखी थीं। मैं उन लोगों के लिए एक टिप जोड़ना चाहता था जिनके खोए और पाए गए बहुत सारे कचरे हैं। मेरे पास 100 की प्रविष्टियां थीं, इसलिए हैश ढूंढने के लिए, आप अपनी गिट निर्देशिका में एक खोज-इन-फ़ाइल प्रकार कमांड का भी उपयोग कर सकते हैं जब तक कि आप जो फ़ाइल लिखी थी, उसे याद रख सकें।मैंने का उपयोग किया। | xargs grep 'PIECE_OF_MISSING_CODE' -sl | grep 'lost-found' – David
गिट शो बकवास दिखाता है, मेरा मतलब है कि कुछ पहचानने योग्य तार हैं, लेकिन शेष बकवास है। क्या इसका मतलब किसी भी तरह से डीकोड किया जाना है, या यह है कि यह क्या है (प्रयोग योग्य नहीं)। –
jayarjo
धन्यवाद। आपने अभी अपना दिन बचाया – fuz