मैं इस समस्या को कैसे हल करूं? का उपयोग करें git fsck
और लॉगिंग!
सबसे पहले एक फाइल बनाएं जिसमें खोया (अगम्य) कमिट और ब्लब्स हो। (नोट: अगर आपने कुछ ऐसा किया है git gc
तो यह कचरा उन सभी को इकट्ठा करेगा और आप उन्हें यहां नहीं पाएंगे!)
$git fsck --lost-found > lost_found.commits
इससे आपको एक फाइल मिलती है:
झूलने प्रतिबद्ध dec2c5e72a81ef06963397a49c4b068540fc0dc3
झूलने ब्लॉब f8c2579e6cbfe022f08345fa7553feb08d60a975
झूलने ब्लॉब 0eb3e86dc112332ceadf9bc826c49bd371acc194
झूलने ब्लॉब 11cbd8eba79e01f4fd7f496b1750953146a09502
झूलने प्रतिबद्ध 18733e44097d2c7a800650cea442febc5344f9b3
झूलने ब्लॉब 1e53a5cdb3ecdde27081ec6e8b31e4070106ee05
फिर आप इस फाइल को अपने पसंदीदा टेक्स्ट एडिटर के साथ वहां से कमिट / ब्लॉग हैश कॉपी करने के लिए खोल सकते हैं। (* खांसी * vim macros इस * कफ * के लिए बहुत अच्छा काम करता है )
अब आप कुछ इस तरह से इस कमिट से वापस लॉग इन कर सकते हैं git log --oneline <commit hash>
। वैकल्पिक रूप से, gitk, tig, या किसी अन्य git दर्शक को काम करना चाहिए।
आपके मामले में अगर आपको कमिटमेंट के लिए हैश मिल जाए तो लॉग आपको कुछ इस तरह दिखाएगा,
A---B---E---F
जल्द और आसान! अब आप उन सभी झटकों के पीछे का संदर्भ पा सकते हैं।
पुनश्च हाँ, मुझे पता है, देर से पोस्ट, लेकिन ओह ठीक है, कोई इसे यहाँ पा सकता है और इसे उपयोगी पा सकता है। (6 महीने में मुझे इसकी संभावना है जब मैं इसे फिर से गूगल करूँगा)
commit --amend
या जानबूझकर अनाथ होने के कारण जानबूझकर अनाथ किए गएrebase
और एक अनाथ के बीच कोई अंतर नहीं है , कहते हैं।